Here is a patch that obsoletes the one I sent some weeks ago. It allows
make distcheck, even with --enable-experimental, corrects the circular
dependency, allows libelektratools to be dlopened even if
libelektratools.so isn't present in /usr/lib, put high level backends in
/usr/lib/elektra and other minor fixes.
* use AM_CPPFLAGS instead of INCLUDES, and include headers relative to
$(top_srcdir) for out-of-source builds
* arrange doxygen for out-of-source build
* add some source files for experimental backends and bindings
* clean up the clean target in doc/Makefile.am, add an uninstall target
* don't test for default_backend presence in ./configure since it breaks
out of source builds
* really use the --enable-experimental value
* libproto.la, backends and tests depends on ../../libelektra/libelektra.la
* use ../../libelektra/libelektra.la instead of -lelektra to link against
in-source library
* add a link for libelektratools in /usr/lib/elektra
* build files required by static libelektra before libelektra, and
libelektra before the backends
* use check_ for tests
* put high level backends in /usr/lib/elektra
* use .$(OBJEXT) instead of .o
* honor default_backend for static libelektra dependencies
* add AC_SUBST(default_dbackend)
--
Pat
Index: elektra.spec.in
===================================================================
--- elektra.spec.in (révision 837)
+++ elektra.spec.in (copie de travail)
@@ -191,6 +191,7 @@
/%{_lib}/elektra/*elektra-fstab.so*
#/%{_lib}/elektra/*elektra-ini.so*
%{_libdir}/*elektratools.so.*
+%{_libdir}/elektra/*elektratools.so
%{_sysconfdir}/profile.d/*
%doc AUTHORS COPYING ChangeLog README INSTALL
%doc scripts doc/standards
Index: src/libelektratools/Makefile.am
===================================================================
--- src/libelektratools/Makefile.am (révision 837)
+++ src/libelektratools/Makefile.am (copie de travail)
@@ -9,9 +9,15 @@
ulib_LTLIBRARIES = libelektratools.la
libelektratools_la_SOURCES = kdbtools.c ../include/kdbtools.h
../include/kdbprivate.h ../include/kdb.h
-libelektratools_la_CPPFLAGS = -DDATADIR=\"@[EMAIL PROTECTED]" -Wall
-libelektratools_la_LDFLAGS = -version-info 1:0:0
+libelektratools_la_CPPFLAGS = -DDATADIR=\"@[EMAIL PROTECTED]" -Wall \
+ -I$(top_srcdir)/src/include $(XML_CPPFLAGS) $(XML_CFLAGS)
+ELEKTRATOOLS_CURRENT = 1
+libelektratools_la_LDFLAGS = -version-info $(ELEKTRATOOLS_CURRENT):0:0
libelektratools_la_LIBADD = $(XML_LIBS)
-INCLUDES = -I../include $(XML_CPPFLAGS) $(XML_CFLAGS)
+install-exec-hook:
+ test -z "$(hlvlbackenddir)" || $(mkdir_p) "$(DESTDIR)$(hlvlbackenddir)"
+ cd $(DESTDIR)$(hlvlbackenddir) && \
+ test -e libelektratools.so || \
+ $(LN_S) $(ulibdir)/libelektratools.so.$(ELEKTRATOOLS_CURRENT)
libelektratools.so
endif
Index: src/kdb/Makefile.am
===================================================================
--- src/kdb/Makefile.am (révision 837)
+++ src/kdb/Makefile.am (copie de travail)
@@ -6,7 +6,7 @@
kdb_LDFLAGS = -L../libelektra
kdb_LDADD = -lelektra $(LIBLTDL)
kdb_CFLAGS = -Wall
-INCLUDES = -I../include $(LTDLINCL)
+AM_CPPFLAGS = -I$(top_srcdir)/src/include $(LTDLINCL)
kdb_static_SOURCES = kdb.c ../include/kdb.h
kdb_static_CFLAGS = -D__STATIC -Wall
Index: src/Doxyfile
===================================================================
--- src/Doxyfile (révision 837)
+++ src/Doxyfile (copie de travail)
@@ -391,7 +391,7 @@
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
-INPUT = libelektra/kdb.c libelektra/kdbhighlevel.c
libelektra/backendhelpers.c libelektra/error.c libelektra/key.c
libelektra/keyset.c libelektratools/kdbtools.c include/kdb.h kdb/kdb.c
include/kdbprivate.h include/kdbbackend.h backends/template
+INPUT = $(srcdir)/libelektra/kdb.c
$(srcdir)/libelektra/kdbhighlevel.c $(srcdir)/libelektra/backendhelpers.c
$(srcdir)/libelektra/error.c $(srcdir)/libelektra/key.c
$(srcdir)/libelektra/keyset.c $(srcdir)/libelektratools/kdbtools.c
$(srcdir)/include/kdb.h $(srcdir)/kdb/kdb.c $(srcdir)/include/kdbprivate.h
$(srcdir)/include/kdbbackend.h $(srcdir)/backends/template
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
@@ -449,7 +449,7 @@
# directories that contain image that are included in the documentation (see
# the \image command).
-IMAGE_PATH = ../doc/images/
+IMAGE_PATH = $(srcdir)/../doc/images/
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
Index: src/Makefile.am
===================================================================
--- src/Makefile.am (révision 837)
+++ src/Makefile.am (copie de travail)
@@ -4,8 +4,18 @@
# bin_PROGRAMS = localeinfo
# localeinfo_SOURCES = localeinfo.c
-AM_CFLAGS=-g -O2
+#AM_CFLAGS=-g -O2
-SUBDIRS = libloader backends libelektra libelektratools libregistry kdb
include bindings
+all-local:
+ (cd backends/$(default_backend) && $(MAKE) $(AM_MAKEFLAGS)
libelektra_$(default_backend)_a-$(default_backend).$(OBJEXT))
+if EXPERIMENTAL
+ (cd backends/ini && $(MAKE) $(AM_MAKEFLAGS) \
+ libelektra_ini_a-ini.$(OBJEXT) \
+ libelektra_ini_a-helpers.$(OBJEXT) \
+ libelektra_ini_a-parser.$(OBJEXT) \
+ )
+endif
+
+SUBDIRS = . libloader libelektra backends libelektratools libregistry kdb
include bindings
EXTRA_DIST = Doxyfile
Index: src/backends/fstab/Makefile.am
===================================================================
--- src/backends/fstab/Makefile.am (révision 837)
+++ src/backends/fstab/Makefile.am (copie de travail)
@@ -5,4 +5,5 @@
libelektra_fstab_la_SOURCES = fstab.c ../../include/kdb.h
../../include/kdbbackend.h
libelektra_fstab_la_LDFLAGS = -avoid-version -module
libelektra_fstab_la_CFLAGS = -Wall
-INCLUDES = -I../../include
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
+libelektra_fstab_la_LIBADD = ../../libelektra/libelektra.la
Index: src/backends/ini/Makefile.am
===================================================================
--- src/backends/ini/Makefile.am (révision 837)
+++ src/backends/ini/Makefile.am (copie de travail)
@@ -3,19 +3,21 @@
testdir = $(develdocdir)/src/backends/ini/
lib_LIBRARIES = libelektra-ini.a
-libelektra_ini_a_SOURCES = ini.c helpers.c parser.c ../../include/kdb.h
../../include/kdbbackend.h
+libelektra_ini_a_SOURCES = ini.c helpers.c parser.c ini.h ../../include/kdb.h
../../include/kdbbackend.h
libelektra_ini_a_CFLAGS = -DDEBUG -D_POSIX_SOURCE -D_BSD_SOURCE -D__STATIC
-ansi -pedantic -Wall
+libelektra_ini_a_LIBADD = ../../libelektra/libelektra.la
backend_LTLIBRARIES = libelektra-ini.la
-libelektra_ini_la_SOURCES = ini.c helpers.c parser.c ../../include/kdb.h
../../include/kdbbackend.h
+libelektra_ini_la_SOURCES = ini.c helpers.c parser.c ini.h ../../include/kdb.h
../../include/kdbbackend.h
libelektra_ini_la_LDFLAGS = -avoid-version -module
libelektra_ini_la_CFLAGS = -DDEBUG -D_POSIX_SOURCE -D_BSD_SOURCE -ansi
-pedantic -Wall
-INCLUDES = -I../../include
+libelektra_ini_la_LIBADD = ../../libelektra/libelektra.la
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
-EXTRA_DIST = test.c
+#EXTRA_DIST = test.c
-test_PROGRAMS = test
+check_PROGRAMS = test
test_SOURCES = test.c
-test_LDADD = -lelektra -lelektra-ini
+test_LDADD = ../../libelektra/libelektra.la libelektra-ini.a
Index: src/backends/daemon/Makefile.am
===================================================================
--- src/backends/daemon/Makefile.am (révision 837)
+++ src/backends/daemon/Makefile.am (copie de travail)
@@ -8,12 +8,11 @@
backend_LTLIBRARIES = libelektra-daemon.la
libelektra_daemon_la_SOURCES = daemon.c
libelektra_daemon_la_LDFLAGS = -avoid-version -module
-libelektra_daemon_la_LIBADD = libproto.la
+libelektra_daemon_la_LIBADD = libproto.la ../../libelektra/libelektra.la
sbin_PROGRAMS = kdbd
kdbd_SOURCES = main.c kdbd.h kdbd.c kdb_wrapper.h kdb_wrapper.c thread.h
thread.c
-kdbd_LDFLAGS = -L../../libelektra/
-kdbd_LDADD = libproto.la -lelektra -lpthread
+kdbd_LDADD = libproto.la ../../libelektra/libelektra.la -lpthread
-INCLUDES = -I../../include -I.
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
Index: src/backends/berkeleydb/Makefile.am
===================================================================
--- src/backends/berkeleydb/Makefile.am (révision 837)
+++ src/backends/berkeleydb/Makefile.am (copie de travail)
@@ -11,5 +11,5 @@
libelektra_berkeleydb_la_LDFLAGS = -avoid-version -module
libelektra_berkeleydb_la_LIBADD = -ldb
libelektra_berkeleydb_la_CFLAGS = -Wall
-INCLUDES = -I../../include
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
endif
Index: src/backends/template/Makefile.am
===================================================================
--- src/backends/template/Makefile.am (révision 837)
+++ src/backends/template/Makefile.am (copie de travail)
@@ -7,4 +7,5 @@
# inoinst_lib_LTLIBRARIES = libelektra-template.la
# libelektra_template_la_SOURCES = template.c ../../include/kdb.h
../../include/kdbbackend.h
# libelektra_template_la_LDFLAGS = -avoid-version -module
-# INCLUDES = -I../../include
+# libelektra_template_la_LIBADD = ../../libelektra/libelektra.la
+# AM_CPPFLAGS = -I$(top_srcdir)/src/include
Index: src/backends/gconf/Makefile.am
===================================================================
--- src/backends/gconf/Makefile.am (révision 837)
+++ src/backends/gconf/Makefile.am (copie de travail)
@@ -6,10 +6,10 @@
#
if HAVE_GCONF
-ulib_LTLIBRARIES = libelektra-gconf.la
+hlvlbackend_LTLIBRARIES = libelektra-gconf.la
libelektra_gconf_la_SOURCES = gconf.c
libelektra_gconf_la_CFLAGS = $(gconf_CFLAGS) -Wall
libelektra_gconf_la_LDFLAGS = -avoid-version -module
-libelektra_gconf_la_LIBADD = $(LIBLTDL) $(gconf_LIBS)
-INCLUDES = -I../../include
+libelektra_gconf_la_LIBADD = $(LIBLTDL) $(gconf_LIBS)
../../libelektra/libelektra.la
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
endif
Index: src/backends/filesys/Makefile.am
===================================================================
--- src/backends/filesys/Makefile.am (révision 837)
+++ src/backends/filesys/Makefile.am (copie de travail)
@@ -4,10 +4,12 @@
lib_LIBRARIES = libelektra-filesys.a
libelektra_filesys_a_SOURCES = filesys.c ../../include/kdb.h
../../include/kdbbackend.h
libelektra_filesys_a_CFLAGS = -D__STATIC -Wall
+libelektra_filesys_a_LIBADD = ../../libelektra/libelektra.la
backend_LTLIBRARIES = libelektra-filesys.la
libelektra_filesys_la_SOURCES = filesys.c ../../include/kdb.h
../../include/kdbbackend.h
libelektra_filesys_la_LDFLAGS = -avoid-version -module
libelektra_filesys_la_CFLAGS = -Wall
-INCLUDES = -I../../include
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
+libelektra_filesys_la_LIBADD = ../../libelektra/libelektra.la
Index: src/libloader/Makefile.am
===================================================================
--- src/libloader/Makefile.am (révision 837)
+++ src/libloader/Makefile.am (copie de travail)
@@ -1,6 +1,7 @@
# $Id$
-AM_CPPFLAGS = -DBACKEND_LIBDIR="\"$(backenddir):$(ulibdir)\""
+AM_CPPFLAGS = -I$(top_srcdir)/src/include $(LTDLINCL)\
+ -DBACKEND_LIBDIR="\"$(backenddir):$(hlvlbackenddir)\""
noinst_LIBRARIES = libloader-static.a
libloader_static_a_SOURCES = kdbLibLoader.c ../include/kdbLibLoader.h
@@ -10,4 +11,3 @@
noinst_LTLIBRARIES = libloader-dynamic.la
libloader_dynamic_la_SOURCES = kdbLibLoader.c ../include/kdbLibLoader.h
libloader_static_la_CFLAGS = -Wall
-INCLUDES = $(LTDLINCL)
Index: src/bindings/cpp/Makefile.am
===================================================================
--- src/bindings/cpp/Makefile.am (révision 837)
+++ src/bindings/cpp/Makefile.am (copie de travail)
@@ -2,17 +2,19 @@
testdir = $(develdocdir)/src/bindings/cpp/
+include_HEADERS = ckdb.h
+
lib_LTLIBRARIES = libelektra-cpp.la
libelektra_cpp_la_SOURCES = ckdb.cpp ckey.cpp ckdb.h ckey.h ../../include/kdb.h
libelektra_cpp_la_LDFLAGS = -avoid-version -module
-libelektra_cpp_la_LIBADD = -lelektra
+libelektra_cpp_la_LIBADD = ../../libelektra/libelektra.la
libelektra_cpp_la_CFLAGS = -DDEBUG
-INCLUDES = -I../../include
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
-EXTRA_DIST = test.cpp
+#EXTRA_DIST = test.cpp
-test_PROGRAMS = test
+check_PROGRAMS = test
test_SOURCES = test.cpp
-test_LDADD = -lelektra-cpp -lelektra
+test_LDADD = libelektra-cpp.la ../../libelektra/libelektra.la
Index: src/libelektra/Makefile.am
===================================================================
--- src/libelektra/Makefile.am (révision 837)
+++ src/libelektra/Makefile.am (copie de travail)
@@ -8,16 +8,16 @@
../include/kdbbackend.h \
../include/kdbprivate.h \
../include/kdbLibLoader.h
-libelektra_a_CFLAGS = -D__STATIC -DDEFAULT_BACKEND=\"@[EMAIL PROTECTED]" -ansi
-pedantic -Wall
-libelektra_a_LIBADD = ../libloader/libloader_static_a-kdbLibLoader.o \
- ../backends/filesys/libelektra_filesys_a-filesys.o \
+libelektra_a_CFLAGS = -D__STATIC -DDEFAULT_BACKEND=\"$(default_backend)\"
-ansi -pedantic -Wall
+libelektra_a_LIBADD = ../libloader/libloader_static_a-kdbLibLoader.$(OBJEXT) \
+
../backends/$(default_backend)/libelektra_$(default_backend)_a-$(default_backend).$(OBJEXT)
\
$(LIBICONV)
if EXPERIMENTAL
libelektra_a_CFLAGS += -DEXPERIMENTAL
-libelektra_a_LIBADD += ../backends/ini/libelektra_ini_a-ini.o \
- ../backends/ini/libelektra_ini_a-helpers.o \
- ../backends/ini/libelektra_ini_a-parser.o
+libelektra_a_LIBADD += ../backends/ini/libelektra_ini_a-ini.$(OBJEXT) \
+ ../backends/ini/libelektra_ini_a-helpers.$(OBJEXT) \
+ ../backends/ini/libelektra_ini_a-parser.$(OBJEXT)
endif
lib_LTLIBRARIES = libelektra.la
@@ -29,5 +29,4 @@
libelektra_la_LDFLAGS = -version-info 2:1:0
libelektra_la_LIBADD = $(LIBLTDL) $(LIBICONV) ../libloader/kdbLibLoader.lo
-
-INCLUDES = -I../include $(LTDLINCL)
+AM_CPPFLAGS = -I$(top_srcdir)/src/include $(LTDLINCL)
Index: configure.ac
===================================================================
--- configure.ac (révision 837)
+++ configure.ac (copie de travail)
@@ -51,6 +51,15 @@
)
AC_SUBST(backenddir)
+# high level backend dlopended libraries path
+AC_ARG_WITH(hlvlbackenddir,
+ [AC_HELP_STRING(--with-hlvl-backenddir=<path where high level
backend libraries are>,
+ [Set the path for high level backend libraries.])],
+ [[hlvlbackenddir=$withval]],
+ [[hlvlbackenddir='${ulibdir}/elektra']]
+ )
+AC_SUBST(hlvlbackenddir)
+
# /usr/share/doc path
AC_ARG_WITH(docdir,
[AC_HELP_STRING(--with-docdir=<path where doc will be installed>,
@@ -94,13 +103,15 @@
[[default_dbackend=$withval]],
[[default_dbackend=berkeleydb]]
)
+AC_SUBST(default_dbackend)
# Enable compilation of experimental things (unfinished
# backends at this time)
AC_ARG_ENABLE(experimental,
[AC_HELP_STRING(--enable-experimental, [Specify to compile or not
experimental parts (could cause compilation failure)])],
+ [experimental=$enableval],
[experimental=no])
-AM_CONDITIONAL(EXPERIMENTAL, test x$experimental = xyes)
+AM_CONDITIONAL(EXPERIMENTAL, [test x$experimental = xyes])
# Select docbook.xsl
AC_ARG_WITH(docbook,
@@ -116,11 +127,12 @@
# This test is needed because we can't check for existance
# of files when cross-compiling and hence just assume they exist.
# Note that this test could probably also be used in the docbook checking part.
-if test "x$cross_compiling" != "xyes"; then
-AC_CHECK_FILE([src/backends/$default_backend/$default_backend.c],
- AC_SUBST(default_backend),
- AC_MSG_ERROR([Can't find backend $default_backend]))
-fi
+dnl if test "x$cross_compiling" != "xyes"; then
+dnl AC_CHECK_FILE([src/backends/$default_backend/$default_backend.c],
+dnl AC_SUBST(default_backend),
+dnl AC_MSG_ERROR([Can't find backend $default_backend]))
+dnl fi
+AC_SUBST(default_backend)
#Check whether we are compiling for win32
case $host_os in
Index: doc/Makefile.am
===================================================================
--- doc/Makefile.am (révision 837)
+++ doc/Makefile.am (copie de travail)
@@ -146,20 +146,19 @@
elektra-api: $(DOXYSOURCES)
@echo "Making Doxygen..."
- cd ../src/; $(doxygen)
+ cd ../src/; srcdir=$(top_srcdir)/src $(doxygen)
$(top_srcdir)/src/Doxyfile
-clean:
- -rm csource.xml
- -rm example.c
- -rm kdb.1 elektra.5 elektra.7
- -rm html-titlepage-layout.xsl
- -rm xorgpatch.xml
- -rm initpatch.xml
- -rm elektra-api.tar.gz
+CLEANFILES = csource.xml \
+ example.c \
+ kdb.1 elektra.5 elektra.7 \
+ html-titlepage-layout.xsl \
+ xorgpatch.xml initpatch.xml \
+ elektra-api.tar.gz
+
+clean-local:
-rm -rf elektra-api
-rm -rf libelektra.org
-
install-develdocDATA: $(api_DATA)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(apihtmldir)
@@ -185,6 +184,23 @@
echo " $(develdocDATA_INSTALL) $$d$$p $(DESTDIR)$(man3dir)/$$f"; \
$(develdocDATA_INSTALL) $$d$$p $(DESTDIR)$(man3dir)/$$f; \
done
+
+uninstall-develdocDATA:
+ -list=`find elektra-api/html/`; for p in $$list; do \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo "rm -f $(DESTDIR)$(apihtmldir)/$$f"; \
+ rm -f $(DESTDIR)$(apihtmldir)/$$f; \
+ done
+ -rmdir $(DESTDIR)$(apihtmldir)
+
+ -list=`find elektra-api/ -name "k[db,ey,s]*.3"` ; for p in $$list; do \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo "rm -f $(DESTDIR)$(man3dir)/$$f"; \
+ rm -f $(DESTDIR)$(man3dir)/$$f; \
+ done
+ -rmdir $(DESTDIR)$(man3dir)
+
+
endif
Index: examples/Makefile.am
===================================================================
--- examples/Makefile.am (révision 837)
+++ examples/Makefile.am (copie de travail)
@@ -15,30 +15,30 @@
elekexample_PROGRAMS = test application binary keyNewExample lookup cascading
keyset hello
test_SOURCES = test.c
-test_LDADD = -lelektra
+test_LDADD = ../src/libelektra/libelektra.la
application_SOURCES = application.c
-application_LDADD = -lelektra
+application_LDADD = ../src/libelektra/libelektra.la
binary_SOURCES = binary.c
-binary_LDADD = -lelektra
+binary_LDADD = ../src/libelektra/libelektra.la
keyNewExample_SOURCES = keyNewExample.c
-keyNewExample_LDADD = -lelektra
+keyNewExample_LDADD = ../src/libelektra/libelektra.la
lookup_SOURCES = lookup.c
-lookup_LDADD = -lelektra
+lookup_LDADD = ../src/libelektra/libelektra.la
cascading_SOURCES = cascading.c
-cascading_LDADD = -lelektra
+cascading_LDADD = ../src/libelektra/libelektra.la
keyset_SOURCES = keyset.c
-keyset_LDADD = -lelektra
+keyset_LDADD = ../src/libelektra/libelektra.la
hello_SOURCES = hello.c
-hello_LDADD = -lelektra
+hello_LDADD = ../src/libelektra/libelektra.la
endif
-INCLUDES = -I../src/include
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Registry-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/registry-list