summaryrefslogtreecommitdiff
path: root/source3/Makefile.in
diff options
context:
space:
mode:
authorMichael Adam <obnox@samba.org>2008-02-14 14:15:07 +0100
committerMichael Adam <obnox@samba.org>2008-02-14 14:17:57 +0100
commitb09b3ac8f88d7b89501193efca3615518218d6f1 (patch)
treed87491fcc3df2a7512d7f4cb64ab3afb3be2dd4d /source3/Makefile.in
parent8e3ae7baaf287f70123eda7aa478ac82812e7c81 (diff)
downloadsamba-b09b3ac8f88d7b89501193efca3615518218d6f1.tar.gz
samba-b09b3ac8f88d7b89501193efca3615518218d6f1.tar.bz2
samba-b09b3ac8f88d7b89501193efca3615518218d6f1.zip
Create symbols to export in libtdb dynamically from tdb.h.
This adds a general mechanism to create version-scripts for linking shared libraries from one or several header files, similar to mkproto.sh/awk. Michael (This used to be commit 65817703c49a7410f4f0c8b46494ede6169d9fa6)
Diffstat (limited to 'source3/Makefile.in')
-rw-r--r--source3/Makefile.in14
1 files changed, 11 insertions, 3 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 9b210cc9e7..0e2e22ca86 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -148,6 +148,8 @@ LIBTALLOC=$(LIBTALLOC_STATIC_TARGET) @LIBTALLOC_SHARED@
LIBTDB_SHARED_TARGET=@LIBTDB_SHARED_TARGET@
LIBTDB_STATIC_TARGET=@LIBTDB_STATIC_TARGET@
LIBTDB=$(LIBTDB_STATIC_TARGET) @LIBTDB_SHARED@
+LIBTDB_SYMS=exports/libtdb.syms
+LIBTDB_HEADERS=@tdbdir@/include/tdb.h
LIBSMBCLIENT=bin/libsmbclient.a @LIBSMBCLIENT_SHARED@
LIBSMBSHAREMODES=bin/libsmbsharemodes.a @LIBSMBSHAREMODES_SHARED@
@@ -1471,7 +1473,12 @@ $(LIBTALLOC_STATIC_TARGET): $(BINARY_PREREQS) $(LIBTALLOC_OBJ0)
@echo Linking non-shared library $@
@-$(AR) -rc $@ $(LIBTALLOC_OBJ0)
-$(LIBTDB_SHARED_TARGET): $(BINARY_PREREQS) $(LIBTDB_OBJ)
+MKSYMS_SH = $(srcdir)/script/mksyms.sh
+
+$(LIBTDB_SYMS): $(LIBTDB_HEADERS)
+ @$(MKSYMS_SH) $(AWK) $@ $(LIBTDB_HEADERS)
+
+$(LIBTDB_SHARED_TARGET): $(BINARY_PREREQS) $(LIBTDB_OBJ) $(LIBTDB_SYMS)
@echo Linking shared library $@
@$(SHLD_DSO) $(LIBTDB_OBJ) \
@SONAMEFLAG@`basename $@`.$(SONAME_VER)
@@ -1998,7 +2005,7 @@ installlibtdb: installdirs libtdb
-$(INSTALLLIBCMD_SH) $(LIBTDB_SHARED_TARGET) $(DESTDIR)$(LIBDIR)
-$(INSTALLLIBCMD_A) $(LIBTDB_STATIC_TARGET) $(DESTDIR)$(LIBDIR)
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) ${prefix}/include
- -$(INSTALLCMD) -m $(INSTALLPERMS_DATA) @tdbdir@/include/tdb.h $(DESTDIR)${prefix}/include
+ -$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(LIBTDB_HEADERS) $(DESTDIR)${prefix}/include
installlibsmbsharemodes: installdirs libsmbsharemodes
@$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
@@ -2132,7 +2139,8 @@ clean: delheaders
$(LIBTALLOC) $(LIBSMBCLIENT) $(LIBADDNS) \
$(LIBSMBSHAREMODES) $(EVERYTHING_PROGS) $(LIBNETAPI) \
bin/libwbclient.so.0 bin/timelimit \
- .headers.stamp */src/*.o proto_exists
+ .headers.stamp */src/*.o proto_exists \
+ $(LIBTDB_SYMS)
-rm -rf t_dir
# Making this target will just make sure that the prototype files