summaryrefslogtreecommitdiffstats
path: root/rules/elektra.make
blob: da562db7885b0c7d8058033086901a9e415f68f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
# -*-makefile-*-
# $Id: template-make 8785 2008-08-26 07:48:06Z wsa $
#
# Copyright (C) 2008 by Robert Schwebel <r.schwebel@pengutronix.de>
#
# See CREDITS for details about who has contributed to this project.
#
# For further information about the PTXdist project and license conditions
# see the README file.
#

#
# We provide this package
#
PACKAGES-$(PTXCONF_ELEKTRA) += elektra

#
# Paths and names
#
ELEKTRA_VERSION	:= 0.7.0-r1618
ELEKTRA		:= elektra-$(ELEKTRA_VERSION)
ELEKTRA_SUFFIX	:= tar.gz
ELEKTRA_URL	:= http://www.markus-raab.org/ftp/$(ELEKTRA).$(ELEKTRA_SUFFIX) \
		   http://www.pengutronix.de/software/ptxdist/temporary-src/$(ELEKTRA).$(ELEKTRA_SUFFIX)
ELEKTRA_SOURCE	:= $(SRCDIR)/$(ELEKTRA).$(ELEKTRA_SUFFIX)
ELEKTRA_DIR	:= $(BUILDDIR)/$(ELEKTRA)

# ----------------------------------------------------------------------------
# Get
# ----------------------------------------------------------------------------

$(ELEKTRA_SOURCE):
	@$(call targetinfo)
	@$(call get, ELEKTRA)

# ----------------------------------------------------------------------------
# Extract
# ----------------------------------------------------------------------------

$(STATEDIR)/elektra.extract:
	@$(call targetinfo)
	@$(call clean, $(ELEKTRA_DIR))
	@$(call extract, ELEKTRA)
	@$(call patchin, ELEKTRA)
	@$(call touch)

# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------

ELEKTRA_PATH	:= PATH=$(CROSS_PATH)
ELEKTRA_ENV 	:= \
	$(CROSS_ENV)

#
# FIXME:
#
# elektra does not try to link against libltdl if not built with
# --enable-ltdl-install. The right solution is probably to build an external
# libltdl and select it from kconfig.
#
# We install libltdl here, although it may collide with other packages.
#

#
# autoconf
#
ELEKTRA_AUTOCONF := \
	$(CROSS_AUTOCONF_USR) \
	--disable-experimental \
	--disable-valgrind-tests \
	--disable-gcov \
	--enable-shared \
	--disable-static \
	--disable-fast-install \
	--without-libiconv-prefix \
	--disable-rpath \
	--disable-xmltest \
	--disable-gconf \
	--disable-python \
	--enable-ltdl-install

ifdef PTXCONF_ELEKTRA__DEBUG
ELEKTRA_AUTOCONF += --enable-debug
else
#ELEKTRA_AUTOCONF += --disable-debug
endif

ifdef PTXCONF_ICONV
ELEKTRA_AUTOCONF += --enable-iconv
else
ELEKTRA_AUTOCONF += --disable-iconv
endif

#
# backends
#

ifdef PTXCONF_ELEKTRA__FILESYS
ELEKTRA_AUTOCONF += --enable-filesys
else
ELEKTRA_AUTOCONF += --disable-filesys
endif
ifdef PTXCONF_ELEKTRA__HOSTS
ELEKTRA_AUTOCONF += --enable-hosts
else
ELEKTRA_AUTOCONF += --disable-hosts
endif
ifdef PTXCONF_ELEKTRA__INI
ELEKTRA_AUTOCONF += --enable-ini
else
ELEKTRA_AUTOCONF += --disable-ini
endif
ifdef PTXCONF_ELEKTRA__BERKELEYDB
ELEKTRA_AUTOCONF += --enable-berkeleydb
else
ELEKTRA_AUTOCONF += --disable-berkeleydb
endif
ifdef PTXCONF_ELEKTRA__FSTAB
ELEKTRA_AUTOCONF += --enable-fstab
else
ELEKTRA_AUTOCONF += --disable-fstab
endif
ifdef PTXCONF_ELEKTRA__PASSWD
ELEKTRA_AUTOCONF += --enable-passwd
else
ELEKTRA_AUTOCONF += --disable-passwd
endif
ifdef PTXCONF_ELEKTRA__DAEMON
ELEKTRA_AUTOCONF += --enable-daemon
else
ELEKTRA_AUTOCONF += --disable-daemon
endif
ifdef PTXCONF_ELEKTRA__CPP
ELEKTRA_AUTOCONF += --enable-cpp
else
ELEKTRA_AUTOCONF += --disable-cpp
endif

#  --with-ulibdir=ULIBDIR> Set the path for usr lib.
#  --with-backenddir=<path where backend libraries are>
#                          Set the path for backend libraries.
#                          [LIBDIR/elektra@]
#  --with-hlvl-backenddir=<path where high level backend libraries are>
#                          Set the path for high level backend libraries.
#                          [ULIBDIR/elektra]
#  --with-docdir=<path where doc will be installed>
#                          Set the path for documentation.
#                          [DATADIR/doc/elektra]
#  --with-develdocdir=<path where elektra-api doc will be installed>
#                          Set the path for elektra api documentation.
#                          [DATADIR/doc/elektra-devel]
#  --with-docbook=<path to docbook.xsl>
#                          Set path to docbook.xsl used for generate manpage.
#                          [/usr/share/sgml/docbook/xsl-stylesheets]
#  --with-kdbschemadir=<relative path to kdb schema>
#                          Set the path for elektra.xsd. DATADIR will be
#                          prefixed. [/sgml/elektra-$PACKAGE_VERSION]
#  --with-default-backend=<backend>
#                          Set backend elektra will be linked to. [filesys]
#  --with-default-dbackend=<daemon backend>
#                          Set the default backend for the kdbd daemon to use.
#                          [berkeleydb]
#  --with-xml-prefix=PFX   Prefix where libxml is installed (optional)
#  --with-xml-exec-prefix=PFX Exec prefix where libxml is installed (optional)

$(STATEDIR)/elektra.prepare:
	@$(call targetinfo)
	@$(call clean, $(ELEKTRA_DIR)/config.cache)
	cd $(ELEKTRA_DIR) && \
		$(ELEKTRA_PATH) $(ELEKTRA_ENV) \
		./configure $(ELEKTRA_AUTOCONF)
	@$(call touch)

# ----------------------------------------------------------------------------
# Compile
# ----------------------------------------------------------------------------

$(STATEDIR)/elektra.compile:
	@$(call targetinfo)
	cd $(ELEKTRA_DIR) && \
		$(ELEKTRA_PATH) $(MAKE) $(PARALLELMFLAGS)
	cd $(ELEKTRA_DIR)/examples && \
		$(ELEKTRA_PATH) $(MAKE) check $(PARALLELMFLAGS)
	@$(call touch)

# ----------------------------------------------------------------------------
# Install
# ----------------------------------------------------------------------------

$(STATEDIR)/elektra.install:
	@$(call targetinfo)
	@$(call install, ELEKTRA)
	@$(call touch)

# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------

$(STATEDIR)/elektra.targetinstall:
	@$(call targetinfo)

	@$(call install_init, elektra)
	@$(call install_fixup, elektra,PACKAGE,elektra)
	@$(call install_fixup, elektra,PRIORITY,optional)
	@$(call install_fixup, elektra,VERSION,$(ELEKTRA_VERSION))
	@$(call install_fixup, elektra,SECTION,base)
	@$(call install_fixup, elektra,AUTHOR,"Robert Schwebel <r.schwebel@pengutronix.de> <your@email.please>")
	@$(call install_fixup, elektra,DEPENDS,)
	@$(call install_fixup, elektra,DESCRIPTION,missing)

	@$(call install_copy, elektra, 0, 0, 0755, $(ELEKTRA_DIR)/src/kdb/kdb, /usr/bin/kdb)
	@$(call install_copy, elektra, 0, 0, 0755, $(ELEKTRA_DIR)/src/preload/preload, /usr/bin/preload)

	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/src/libelektra/.libs/libelektra.so.3.0.0, \
		/usr/lib/libelektra.so.3.0.0)
	@$(call install_link, elektra, libelektra.so.3.0.0, /usr/lib/libelektra.so.3)
	@$(call install_link, elektra, libelektra.so.3.0.0, /usr/lib/libelektra.so)

#	FIXME: libelektratools is only available if we have xml support
#
#	@$(call install_copy, elektra, 0, 0, 0644, \
#		$(ELEKTRA_DIR)/src/libelektratools/.libs/libelektratools.so.2.0.0, \
#		/usr/lib/elektra/libelektratools.so.2.0.0)
#	@$(call install_link, elektra, libelektratools.so.2.0.0, /usr/lib/elektra/libelektratools.so.2)
#	@$(call install_link, elektra, libelektratools.so.2.0.0, /usr/lib/elektra/libelektratools.so)

ifdef PTXCONF_ELEKTRA__CPP
	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/src/bindings/cpp/.libs/libelektra-cpp.so.0.0.0, \
		/usr/lib/libelektra-cpp.so.0.0.0)
	@$(call install_link, elektra, libelektra-cpp.so.0.0.0, /usr/lib/libelektra-cpp.so.0)
	@$(call install_link, elektra, libelektra-cpp.so.0.0.0, /usr/lib/libelektra-cpp.so)
endif
ifdef PTXCONF_ELEKTRA__FILESYS
	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/src/backends/filesys/.libs/libelektra-filesys.so, \
		/usr/lib/elektra/libelektra-filesys.so)
endif
ifdef PTXCONF_ELEKTRA__HOSTS
	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/src/backends/hosts/.libs/libelektra-hosts.so, \
		/usr/lib/elektra/libelektra-hosts.so)
endif
ifdef PTXCONF_ELEKTRA__INI
	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/src/backends/ini/.libs/libelektra-ini.so, \
		/usr/lib/elektra/libelektra-ini.so)
endif
ifdef PTXCONF_ELEKTRA__BERKELEYDB
	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/src/backends/berkeleydb/.libs/libelektra-berkeleydb.so, \
		/usr/lib/elektra/libelektra-berkeleydb.so)
endif
ifdef PTXCONF_ELEKTRA__FSTAB
	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/src/backends/fstab/.libs/libelektra-fstab.so, \
		/usr/lib/elektra/libelektra-fstab.so)
endif
ifdef PTXCONF_ELEKTRA__PASSWD
	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/src/backends/passwd/.libs/libelektra-passwd.so, \
		/usr/lib/elektra/libelektra-passwd.so)
endif
ifdef PTXCONF_ELEKTRA__DAEMON
	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/src/backends/daemon/.libs/libelektra-daemon.so, \
		/usr/lib/elektra/libelektra-daemon.so)
	@$(call install_copy, elektra, 0, 0, 0755, $(ELEKTRA_DIR)/src/backends/daemon/kdbd, /usr/sbin/kdbd)
endif

	# make link for default backend
ifdef PTXCONF_ELEKTRA__DEFAULT_BACKEND_FILESYS
	@$(call install_link, elektra, \
		libelektra-filesys.so, \
		/usr/lib/elektra/libelektra-default.so)
endif
ifdef PTXCONF_ELEKTRA__DEFAULT_BACKEND_HOSTS
	@$(call install_link, elektra, \
		libelektra-hosts.so, \
		/usr/lib/elektra/libelektra-default.so)
endif
ifdef PTXCONF_ELEKTRA__DEFAULT_BACKEND_INI
	@$(call install_link, elektra, \
		libelektra-ini.so, \
		/usr/lib/elektra/libelektra-default.so)
endif
ifdef PTXCONF_ELEKTRA__DEFAULT_BACKEND_BERKELEYDB
	@$(call install_link, elektra, \
		libelektra-berkeleydb.so, \
		/usr/lib/elektra/libelektra-default.so)
endif
ifdef PTXCONF_ELEKTRA__DEFAULT_BACKEND_FSTAB
	@$(call install_link, elektra, \
		libelektra-fstab.so, \
		/usr/lib/elektra/libelektra-default.so)
endif
ifdef PTXCONF_ELEKTRA__DEFAULT_BACKEND_PASSWD
	@$(call install_link, elektra, \
		libelektra-passwd.so, \
		/usr/lib/elektra/libelektra-default.so)
endif
ifdef PTXCONF_ELEKTRA__DEFAULT_BACKEND_DAEMON
	@$(call install_link, elektra, \
		libelektra-daemon.so, \
		/usr/lib/elektra/libelektra-default.so)
endif

	# FIXME: see note above
	@$(call install_copy, elektra, 0, 0, 0644, \
		$(ELEKTRA_DIR)/libltdl/.libs/libltdl.so.7.2.0, \
		/usr/lib/libltdl.so.7.2.0)
	@$(call install_link, elektra, libltdl.so.7.2.0, /usr/lib/libltdl.so.7)
	@$(call install_link, elektra, libltdl.so.7.2.0, /usr/lib/libltdl.so)

	@$(call install_finish, elektra)

	@$(call touch)

# ----------------------------------------------------------------------------
# Clean
# ----------------------------------------------------------------------------

elektra_clean:
	rm -rf $(STATEDIR)/elektra.*
	rm -rf $(PKGDIR)/elektra_*
	rm -rf $(ELEKTRA_DIR)

# vim: syntax=make