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

Reply via email to