Add shared-build target to talloc.
authorSimo Sorce <idra@samba.org>
Fri, 19 Sep 2008 19:15:21 +0000 (15:15 -0400)
committerSimo Sorce <idra@samba.org>
Fri, 19 Sep 2008 22:07:37 +0000 (18:07 -0400)
Useful to build multiple standalone libraries that depend on each other
without having to install them to the final install dir during the build.

lib/talloc/Makefile.in
lib/talloc/build_macros.m4 [new file with mode: 0644]
lib/talloc/configure.ac
lib/talloc/talloc.mk

index 07b8fd4ff0fa8a1079a0c7f6d3f74581defb0b48..c28693e2db93ca7209b8622c137422f167d5d01d 100644 (file)
@@ -9,6 +9,7 @@ mandir = @mandir@
 VPATH = @srcdir@:@libreplacedir@
 srcdir = @srcdir@
 builddir = @builddir@
+sharedbuilddir = @sharedbuilddir@
 XSLTPROC = @XSLTPROC@
 INSTALLCMD = @INSTALL@
 CC = @CC@
@@ -31,6 +32,15 @@ include $(tallocdir)/talloc.mk
 $(TALLOC_SOLIB): $(LIBOBJ)
        $(SHLD) $(SHLD_FLAGS) -o $@ $(LIBOBJ) @SONAMEFLAG@$(TALLOC_SONAME)
 
+shared-build: all
+       ${INSTALLCMD} -d $(sharedbuilddir)/lib
+       ${INSTALLCMD} -m 644 libtalloc.a $(sharedbuilddir)/lib
+       ${INSTALLCMD} -m 755 $(TALLOC_SOLIB) $(sharedbuilddir)/lib
+       ln -sf $(TALLOC_SOLIB) $(sharedbuilddir)/lib/$(TALLOC_SONAME)
+       ln -sf $(TALLOC_SOLIB) $(sharedbuilddir)/lib/libtalloc.so
+       ${INSTALLCMD} -d $(sharedbuilddir)/include
+       ${INSTALLCMD} -m 644 $(srcdir)/talloc.h $(sharedbuilddir)/include
+
 check: test
 
 installcheck:: test install
diff --git a/lib/talloc/build_macros.m4 b/lib/talloc/build_macros.m4
new file mode 100644 (file)
index 0000000..c036668
--- /dev/null
@@ -0,0 +1,14 @@
+AC_DEFUN(BUILD_WITH_SHARED_BUILD_DIR,
+  [ AC_ARG_WITH([shared-build-dir],
+                [AC_HELP_STRING([--with-shared-build-dir=DIR],
+                                [temporary build directory where libraries are installed [$srcdir/sharedbuild]])])
+
+    sharedbuilddir="$srcdir/sharedbuild"
+    if test x"$with_shared_build_dir" != x; then
+        sharedbuilddir=$with_shared_build_dir
+        CFLAGS="$CFLAGS -I$with_shared_build_dir/include"
+        LDFLAGS="$LDFLAGS -L$with_shared_build_dir/lib"
+    fi
+    AC_SUBST(sharedbuilddir)
+  ])
+
index 4719aa04b59c0d5992856244886c5ca542bfa318..d2538f92221cf7a5452c3970c7174fbcf52b276c 100644 (file)
@@ -21,4 +21,7 @@ AC_LD_SONAMEFLAG
 AC_LIBREPLACE_SHLD
 AC_LIBREPLACE_SHLD_FLAGS
 
+m4_include(build_macros.m4)
+BUILD_WITH_SHARED_BUILD_DIR
+
 AC_OUTPUT(Makefile talloc.pc)
index e1fe88c84b66483b11da92cf9508b0f60fd02b9f..23331b6365b61fba5807c822401637425cbc870b 100644 (file)
@@ -22,8 +22,8 @@ install:: all
        ${INSTALLCMD} -m 644 talloc.pc $(DESTDIR)$(libdir)/pkgconfig
        if [ -f talloc.3 ];then ${INSTALLCMD} -d $(DESTDIR)$(mandir)/man3; fi
        if [ -f talloc.3 ];then ${INSTALLCMD} -m 644 talloc.3 $(DESTDIR)$(mandir)/man3; fi
-       which swig >/dev/null 2>&1 && ${INSTALLCMD} -d $(DESTDIR)`swig -swiglib` || true
-       which swig >/dev/null 2>&1 && ${INSTALLCMD} -m 644 talloc.i $(DESTDIR)`swig -swiglib` || true
+       which swig >/dev/null 2>&1 && ${INSTALLCMD} -d $(DESTDIR)$(prefix)`swig -swiglib` || true
+       which swig >/dev/null 2>&1 && ${INSTALLCMD} -m 644 talloc.i $(DESTDIR)$(prefix)`swig -swiglib` || true
 
 doc:: talloc.3 talloc.3.html