Build kopenafs with libtool
[openafs.git] / src / kopenafs / Makefile.in
index 4274cce..7a1c8f5 100644 (file)
@@ -9,29 +9,27 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.shared
+include @TOP_OBJDIR@/src/config/Makefile.libtool
+include @TOP_OBJDIR@/src/config/Makefile.pthread
 
+LT_current = 2
+LT_revision = 0
+LT_age = 0
 
-# API version. When something changes, increment as appropriate.
-# Ignore at your own risk.
-MAJOR          = 1
-MINOR          = 1
+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 $@
@@ -39,22 +37,24 @@ ${TOP_LIBDIR}/libkopenafs.a: libkopenafs.a
 ${TOP_INCDIR}/kopenafs.h: kopenafs.h
        ${INSTALL_DATA} $? $@
 
-glue.o: ${SYS}/glue.c ${SYS}/afssyscalls.h
-       $(AFS_CCRULE) $(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
-       $(AFS_CCRULE) $(SYS)/pioctl.c
+pioctl.lo: $(SYS)/pioctl.c $(SYS)/afssyscalls.h
+       $(LT_CCRULE) $(SYS)/pioctl.c
 
-setpag.o: ${SYS}/setpag.c ${SYS}/afssyscalls.h
-       $(AFS_CCRULE) $(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_*) \
-               $(AFS_CCRULE_NOQ) ${SYS}/syscall.s; \
+               ${CC} ${AFS_CFLAGS} -c ${SYS}/syscall.s; \
                ;; \
        rs_aix* | hp_ux10*) \
                $(PATH_CPP) -P ${SFLAGS} ${SYS}/syscall.s > syscall.ss; \
@@ -62,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 libkopenafs.map
-       @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) $(LT_objs)
 
-test-unlog: test-unlog.o libkopenafs.a
-       $(AFS_LDRULE) test-unlog.o libkopenafs.a ${XLIBS}
+test-unlog: test-unlog.lo libkopenafs.la
+       $(LT_LDRULE_static) test-unlog.lo libkopenafs.la $(XLIBS)
 
-test-setpag: test-setpag.o libkopenafs.a
-       $(AFS_LDRULE) test-setpag.o libkopenafs.a ${XLIBS}
+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} ${srcdir}/kopenafs.h ${DESTDIR}${includedir}/kopenafs.h
-       ../config/shlib-install -d ${DESTDIR}${libdir} \
-               -l libkopenafs -M ${MAJOR} -m ${MINOR}
 
-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} ${srcdir}/kopenafs.h ${DEST}/include/kopenafs.h
-       ../config/shlib-install -d ${DEST}/lib \
-               -l libkopenafs -M ${MAJOR} -m ${MINOR}
 
 #
 # Misc targets
 #
 clean:
-       $(RM) -f *.o *.a ${LIBKOPENAFS} AFS_component_version_number.c \
-               test-setpag test-unlog libkopenafs.exp
+       ${LT_CLEAN}
+       $(RM) -f *.o *.a AFS_component_version_number.c \
+               test-setpag test-unlog
 
 include ../config/Makefile.version