]> git.sur5r.net Git - openldap/blobdiff - build/lib-shared.mk
ITS#576: cause subdir make failure to halt subsequent making
[openldap] / build / lib-shared.mk
index 76774428f87cf1fbffb866bf0ac03b7827d5cff4..3952bcf3c9a753437cb2e85a0655fae1979c5c6d 100644 (file)
@@ -1,11 +1,22 @@
+# $OpenLDAP$
+## Copyright 1998-2000 The OpenLDAP Foundation
+## COPYING RESTRICTIONS APPLY.  See COPYRIGHT File in top level directory
+## of this package for details.
 ##---------------------------------------------------------------------------
 ##
 ## Makefile Template for Shared Libraries
 ##
 
-LTVERSION = -version-info $(LIBVERSION)
-LINK    = $(LTLINK)
-COMPILE = $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c
+NT_LTFLAGS = --only-$(LINKAGE)
+LTFLAGS = $(@PLAT@_LTFLAGS) 
+
+NT_DYN_LT_NO_UNDEF = -no-undefined
+LT_NO_UNDEF = $(@PLAT@_@LIB_LINKAGE@_LT_NO_UNDEF)
+
+COMPILE = $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) $(CFLAGS) $(EXTRA_DEFS) -c
+LTLIBLINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) \
+               $(LTVERSION) $(LT_NO_UNDEF)
+
 MKDEPFLAG = -l
 
 .SUFFIXES: .c .o .lo
@@ -13,11 +24,29 @@ MKDEPFLAG = -l
 .c.lo:
        $(COMPILE) $<
 
+
+# DYN_EXT (@DYN_EXT@) describes the extension assoicated with a
+# dynamic library, e.g. so, dll
+
+DYN_EXT=@DYN_EXT@
+
 $(LIBRARY):  version.lo
-       $(LINK) -rpath $(libdir) -o $@ $(OBJS) version.lo
-       $(RM) ../$@;    \
-       (d=`$(PWD)` ; $(LN_S) `$(BASENAME) $$d`/$@ ../$@)
-       $(RM) ../`$(BASENAME) $@ .la`.a;        \
-       (d=`$(PWD)`; t=`$(BASENAME) $@ .la`.a; $(LN_S) `$(BASENAME) $$d`/.libs/$$t ../$$t)
+       $(LTLIBLINK) -rpath $(libdir) -o $@ $(OBJS) version.lo $(EXTRA_LIBS)
+       $(RM) ../$@
+       d=`$(PWD)`; d=`$(BASENAME) $$d`; cd ..; $(LN_S) $$d/$@ $@; \
+       t=`$(BASENAME) $@ .la`.a; $(RM) $$t; $(LN_S) $$d/.libs/$$t $$t
+       @# If we want our binaries to link dynamically with libldap{,_r} liblber
+       @# We also symlink the .so, so we can run the tests without installing
+       if test "$(LINK_BINS_DYNAMIC)" = "yes"; then \
+               d=`$(PWD)`; d=`$(BASENAME) $$d`; b=`$(BASENAME) $@ .la`; \
+                cd .libs; t=`echo $$b*.$(DYN_EXT)`; (cd ../.. ; $(RM) $$t; \
+                $(LN_S) $$d/.libs/$$t $$t); \
+               if test "$(DYN_EXT)" != dll; then \
+                   t=`echo $$b.$(DYN_EXT).?`; cd ../.. ; \
+                   $(RM) $$t; \
+                   $(LN_S) $$d/.libs/$$t $$t; \
+               fi \
+       fi
 
 Makefile: $(top_srcdir)/build/lib-shared.mk
+