Pass -shared when linking some shared libraries
[openafs.git] / src / kopenafs / Makefile.in
index 3f06c0e..111393d 100644 (file)
@@ -9,55 +9,52 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+include @TOP_OBJDIR@/src/config/Makefile.libtool
+include @TOP_OBJDIR@/src/config/Makefile.pthread
 
-# API version. When something changes, increment as appropriate. 
-# Ignore at your own risk.
-MAJOR          = 1
-MINOR          = 0
+LT_current = 2
+LT_revision = 0
+LT_age = 0
 
-CC             = ${MT_CC}
-INCLUDES       = -I. -I${srcdir} -I../sys
-CFLAGS         = ${COMMON_CFLAGS} ${INCLUDES} ${MT_CFLAGS} ${SHLIB_CFLAGS}
+LT_objs = glue.lo pioctl.lo setpag.lo kopenafs.lo \
+       AFS_component_version_number.lo
+
+MODULE_INCLUDE = -I. -I${srcdir} -I../sys
 
 SFLAGS         = -I${TOP_INCDIR}
 SYS            = ${srcdir}/../sys
-SYSOBJS                = glue.o pioctl.o setpag.o
-LIBOBJS                = kopenafs.o ${SYSOBJS} AFS_component_version_number.o
-
-LIBKOPENAFS    = libkopenafs.${SHLIB_SUFFIX}.${MAJOR}.${MINOR}
 
-all: ${TOP_LIBDIR}/${LIBKOPENAFS} ${TOP_LIBDIR}/libkopenafs.a \
+all: ${TOP_LIBDIR}/libkopenafs.${SHLIB_SUFFIX} ${TOP_LIBDIR}/libkopenafs.a \
                ${TOP_INCDIR}/kopenafs.h
 
-${TOP_LIBDIR}/${LIBKOPENAFS}: ${LIBKOPENAFS}
-       ../config/shlib-install -d ${TOP_LIBDIR} \
-               -l libkopenafs -M ${MAJOR} -m ${MINOR}
+${TOP_LIBDIR}/libkopenafs.${SHLIB_SUFFIX}: libkopenafs.la
+       ${LT_INSTALL_DATA} libkopenafs.la ${TOP_LIBDIR}/libkopenafs.la
+       ${RM} ${TOP_LIBDIR}/libkopenafs.la
 
 ${TOP_LIBDIR}/libkopenafs.a: libkopenafs.a
        ${INSTALL_DATA} libkopenafs.a $@
 
 ${TOP_INCDIR}/kopenafs.h: kopenafs.h
-       ${INSTALL_DATA} kopenafs.h $@
+       ${INSTALL_DATA} $? $@
 
-glue.o: ${SYS}/glue.c ${SYS}/afssyscalls.h
-       ${CCOBJ} ${CFLAGS} -c ${SYS}/glue.c
+# Build rules for foreign sources.  The implicit ones don't work when our
+# sources are in a different castle.
+glue.lo: $(SYS)/glue.c $(SYS)/afssyscalls.h
+       $(LT_CCRULE) $(SYS)/glue.c
 
-pioctl.o: ${SYS}/pioctl.c ${SYS}/afssyscalls.h
-       ${CCOBJ} ${CFLAGS} -c ${SYS}/pioctl.c
+pioctl.lo: $(SYS)/pioctl.c $(SYS)/afssyscalls.h
+       $(LT_CCRULE) $(SYS)/pioctl.c
 
-setpag.o: ${SYS}/setpag.c ${SYS}/afssyscalls.h
-       ${CCOBJ} ${CFLAGS} -c ${SYS}/setpag.c
+setpag.lo: $(SYS)/setpag.c $(SYS)/afssyscalls.h
+       $(LT_CCRULE) $(SYS)/setpag.c
 
 # This file is only actually used on SGI and AIX, but some systems can't cope
 # with an empty .o file being included in a link.
-syscall.o: ${SYS}/syscall.s
+
+syscall.lo: $(SYS)/syscall.s
        @set -e; set -x; case "$(SYS_NAME)" in \
        sgi_*) \
-                ${CC} ${CFLAGS} -c ${SYS}/syscall.s; \
+               ${CC} ${AFS_CFLAGS} -c ${SYS}/syscall.s; \
                ;; \
        rs_aix* | hp_ux10*) \
                $(PATH_CPP) -P ${SFLAGS} ${SYS}/syscall.s > syscall.ss; \
@@ -65,64 +62,52 @@ syscall.o: ${SYS}/syscall.s
                $(RM) syscall.ss; \
                ;; \
        *) \
-               touch syscall.o ; \
+               touch syscall.c ; \
+               $(CC) $(AFS_CFLAGS) -c syscall.c -o syscall.o; \
                ;; \
        esac
+       rm -f $@
+       echo "# Generated by libtool (GNU libtool) 0.0.0" > $@
+       echo "pic_object='syscall.o'" >> $@
+       echo "non_pic_object='syscall.o'" >> $@
 
-libkopenafs.a: ${LIBOBJS} syscall.o
-       ${RM} -f $@
-       @set -e; set -x; case "$(SYS_NAME)" in \
-       sgi_* | rs_aix* | hp_ux10*) \
-               ${AR} crv $@ ${LIBOBJS} syscall.o ;; \
-       *) \
-               ${AR} crv $@ ${LIBOBJS} ;; \
-       esac
-       ${RANLIB} $@
-
-${LIBKOPENAFS}: ${LIBOBJS} syscall.o
-       @set -e; set -x; case ${SYS_NAME} in \
-       sgi_* | rs_aix* | hp_ux10*) \
-               ../config/shlib-build -d $(srcdir) -l libkopenafs \
-                       -M ${MAJOR} -m ${MINOR} -- \
-                       ${LIBOBJS} syscall.o ${MT_LIBS} ; \
-               ;; \
-       *) \
-               ../config/shlib-build -d $(srcdir) -l libkopenafs \
-                       -M ${MAJOR} -m ${MINOR} -- \
-                       ${LIBOBJS} ${MT_LIBS} ; \
-               ;; \
-       esac
+libkopenafs.a: $(LT_objs)
+       $(LT_LDLIB_static) $(LT_objs)
+
+libkopenafs.la: libkopenafs.la.sym $(LT_objs)
+       $(LT_LDLIB_shlib_only) $(LT_objs)
 
-test-unlog: test-unlog.o libkopenafs.a
-       ${CC} -o test-unlog test-unlog.o libkopenafs.a ${XLIBS} ${CFLAGS}
+test-unlog: test-unlog.lo libkopenafs.la
+       $(LT_LDRULE_static) test-unlog.lo libkopenafs.la $(XLIBS)
 
-test-setpag: test-setpag.o libkopenafs.a
-       ${CC} -o test-setpag test-setpag.o libkopenafs.a ${XLIBS} ${CFLAGS}
+test-setpag: test-setpag.lo libkopenafs.la
+       $(LT_LDRULE_static) test-setpag.lo libkopenafs.la $(XLIBS)
 
 #
 # Installation targets
 #
-install: ${LIBKOPENAFS}
+install: libkopenafs.la libkopenafs.a
        ${INSTALL} -d ${DESTDIR}${libdir}
        ${INSTALL} -d ${DESTDIR}${includedir}
+       ${LT_INSTALL_DATA} libkopenafs.la ${DESTDIR}${libdir}/libkopenafs.la
+       ${RM} ${DESTDIR}${libdir}/libkopenafs.la
        ${INSTALL_DATA} libkopenafs.a ${DESTDIR}${libdir}/libkopenafs.a
-       ${INSTALL_DATA} kopenafs.h ${DESTDIR}${includedir}/kopenafs.h
-       ../config/shlib-install -d ${DESTDIR}${libdir} \
-               -l libkopenafs -M ${MAJOR} -m ${MINOR}
+       ${INSTALL_DATA} ${srcdir}/kopenafs.h ${DESTDIR}${includedir}/kopenafs.h
 
-dest: ${LIBKOPENAFS}
+dest: libkopenafs.la libkopenafs.a
        ${INSTALL} -d ${DEST}/lib
        ${INSTALL} -d ${DEST}/include
+       ${LT_INSTALL_DATA} libkopenafs.la ${DEST}/lib/libkopenafs.la
+       ${RM} ${DEST}/lib/libkopenafs.la
        ${INSTALL_DATA} libkopenafs.a ${DEST}/lib/libkopenafs.a
-       ${INSTALL_DATA} kopenafs.h ${DEST}/include/kopenafs.h
-       ../config/shlib-install -d ${DEST}/lib \
-               -l libkopenafs -M ${MAJOR} -m ${MINOR}
+       ${INSTALL_DATA} ${srcdir}/kopenafs.h ${DEST}/include/kopenafs.h
 
 #
 # Misc targets
 #
 clean:
-       $(RM) -f *.o *.a ${LIBKOPENAFS} AFS_component_version_number.c \
+       ${LT_CLEAN}
+       $(RM) -f *.o *.a AFS_component_version_number.c \
                test-setpag test-unlog
 
 include ../config/Makefile.version