+# $OpenLDAP$
+## Copyright 1998-2002 The OpenLDAP Foundation
+## COPYING RESTRICTIONS APPLY. See COPYRIGHT File in top level directory
+## of this package for details.
##---------------------------------------------------------------------------
##
## Makefile Template for Shared Libraries
##
-LINK = $(LTLINK) -version-info $(LIBVERSION)
-COMPILE = $(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c
MKDEPFLAG = -l
.SUFFIXES: .c .o .lo
.c.lo:
- $(COMPILE) $<
+ $(LTCOMPILE_LIB) $<
-$(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)
+#
+# symlinks for libraries: UNIX and Windows (a.k.a. NT) need to be handled
+# differently. In UNIX, the static and shared libraries, as well as shared
+# library symlinks, can all be symlinked in the 'libraries' directory. In
+# Windows, only the static library (.a file) or the shared library (.dll)
+# file should be present. The current mingw linker (i.e. ld) WILL look
+# for a .dll file at link time and internally generate an import library
+# for it. However, ld will not do this if a static library is present.
+# That doesn't seem very correct, but that's the behavior, like it or not.
+#
+# Note that there doesn't seem to be a true need for the .la file at
+# this level, so it is left out.
+#
+# The set of symlinks are determined by examining the library's .la file.
+#
+$(LIBRARY): version.lo
+ $(LTLINK_LIB) -o $@ $(OBJS) version.lo $(LINK_LIBS)
+ @d=`$(PWD)`; b=`$(BASENAME) $$d`; \
+ echo cd ..; \
+ cd ..; \
+ arlib=`grep '^old_library=' $$b/$@`; \
+ arlib=`expr "$$arlib" : "[^']*'\(.*\)'"`; \
+ libs=$$arlib; \
+ if test "$(BUILD_LIBS_DYNAMIC)" = "shared"; then \
+ shlibs=`grep '^library_names' $$b/$@`; \
+ shlibs=`expr "$$shlibs" : "[^']*'\(.*\)'"`; \
+ libs="$$libs $$shlibs"; \
+ fi; \
+ for i in $$libs; do \
+ echo $(RM) $$i; \
+ $(RM) $$i; \
+ echo $(LN_S) $$b/.libs/$$i $$i; \
+ $(LN_S) $$b/.libs/$$i $$i; \
+ done
Makefile: $(top_srcdir)/build/lib-shared.mk
+