libtool: Serialize building libfoo.la and libfoo.a
[openafs.git] / src / kopenafs / Makefile.in
index eb470ed..22ab124 100644 (file)
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
+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 syscall.o
-LIBOBJS                = kopenafs.o ${SYSOBJS} AFS_component_version_number.o
 
-LIBKOPENAFS    = libkopenafs.${SHLIB_SUFFIX}.${MAJOR}.${MINOR}
+@SHARED_ONLY@SHARED_LIBS = libkopenafs.la
+@SHARED_ONLY@SHARED_SHLIBS_TOP = ${TOP_LIBDIR}/libkopenafs.${SHLIB_SUFFIX}
 
-all: ${TOP_LIBDIR}/${LIBKOPENAFS} ${TOP_LIBDIR}/libkopenafs.a \
+all: $(SHARED_SHLIBS_TOP) ${TOP_LIBDIR}/libkopenafs.a \
                ${TOP_INCDIR}/kopenafs.h
 
-${TOP_LIBDIR}/${LIBKOPENAFS}: ${LIBKOPENAFS}
-       ${INSTALL_DATA} ${LIBKOPENAFS} ${TOP_LIBDIR}/${LIBKOPENAFS}
-       -ln -f -s ${LIBKOPENAFS} \
-               ${TOP_LIBDIR}/libkopenafs.${SHLIB_SUFFIX}
-       -ln -f -s ${LIBKOPENAFS} \
-               ${TOP_LIBDIR}/libkopenafs.${SHLIB_SUFFIX}.${MAJOR}
+${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
-       @set -x; case "$(SYS_NAME)" in \
+
+syscall.lo: $(SYS)/syscall.s
+       @set -e; set -x; case "$(SYS_NAME)" in \
        sgi_*) \
-                ${CC} ${CFLAGS} -c ${SYS}/syscall.s; \
-               ;; \
-       *fbsd* | *obsd* | *nbsd*) \
-               ${CCOBJ} -E ${SFLAGS} syscall.s > syscall.S ; \
-               ${AS} syscall.S -o syscall.o ; \
-               $(RM) -f syscall.S; \
+               ${CC} ${AFS_CFLAGS} -c ${SYS}/syscall.s; \
                ;; \
-       rs_aix*) \
-               /lib/cpp -P ${SFLAGS} ${srcdir}/syscall.s syscall.ss; \
+       rs_aix* | hp_ux10*) \
+               $(PATH_CPP) -P ${SFLAGS} ${SYS}/syscall.s > syscall.ss; \
                as -o syscall.o syscall.ss; \
                $(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}
-       ${RM} -f $@
-       ${AR} crv $@ ${LIBOBJS}
-       ${RANLIB} $@
+libkopenafs.a: $(LT_objs)
+       $(LT_LDLIB_static) $(LT_objs)
 
-${LIBKOPENAFS}: ${LIBOBJS}
-       case ${SYS_NAME} in \
-       rs_aix*) \
-               ${SHLIB_LINKER} -o ${LIBKOPENAFS} ${LIBOBJS} \
-                       -bE:${srcdir}/kopenafs.exp ${MT_LIBS}; \
-               ;; \
-       sun*_5*) \
-               ${SHLIB_LINKER} -h libafsrpc.${SHLIB_SUFFIX}.${MAJOR} \
-                       -o ${LIBKOPENAFS} ${LIBOBJS} ${MT_LIBS}; \
-               ;; \
-       *_linux*) \
-               ${SHLIB_LINKER} -Wl,-h,libafsrpc.${SHLIB_SUFFIX}.${MAJOR} \
-                       -Wl,--version-script=${srcdir}/mapfile \
-                       -o ${LIBKOPENAFS} ${LIBOBJS} ${MT_LIBS}; \
-               ;; \
-       *) \
-               ${SHLIB_LINKER} -o ${LIBKOPENAFS} ${LIBOBJS} ${MT_LIBS}; \
-               ;; \
-       esac
+libkopenafs.la: libkopenafs.la.sym $(LT_objs) libkopenafs.a
+       $(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.a
+       $(LT_LDRULE_static) test-unlog.lo libkopenafs.a $(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.a
+       $(LT_LDRULE_static) test-setpag.lo libkopenafs.a $(XLIBS)
 
 #
 # Installation targets
 #
-install: ${LIBKOPENAFS}
+install: $(SHARED_LIBS) libkopenafs.a
        ${INSTALL} -d ${DESTDIR}${libdir}
        ${INSTALL} -d ${DESTDIR}${includedir}
+       @SHARED_ONLY@${LT_INSTALL_DATA} libkopenafs.la ${DESTDIR}${libdir}/libkopenafs.la
+       @SHARED_ONLY@${RM} ${DESTDIR}${libdir}/libkopenafs.la
        ${INSTALL_DATA} libkopenafs.a ${DESTDIR}${libdir}/libkopenafs.a
-       ${INSTALL_DATA} ${LIBKOPENAFS} ${DESTDIR}${libdir}/${LIBKOPENAFS}
-       -ln -f -s ${LIBKOPENAFS} \
-               ${DESTDIR}${libdir}/libkopenafs.${SHLIB_SUFFIX}
-       -ln -f -s ${LIBKOPENAFS} \
-               ${DESTDIR}${libdir}/libkopenafs.${SHLIB_SUFFIX}.${MAJOR}
-       ${INSTALL_DATA} kopenafs.h ${DESTDIR}${includedir}/kopenafs.h
-
-dest: ${LIBKOPENAFS}
+       ${INSTALL_DATA} ${srcdir}/kopenafs.h ${DESTDIR}${includedir}/kopenafs.h
+
+dest: $(SHARED_LIBS) libkopenafs.a
        ${INSTALL} -d ${DEST}/lib
        ${INSTALL} -d ${DEST}/include
+       @SHARED_ONLY@${LT_INSTALL_DATA} libkopenafs.la ${DEST}/lib/libkopenafs.la
+       @SHARED_ONLY@${RM} ${DEST}/lib/libkopenafs.la
        ${INSTALL_DATA} libkopenafs.a ${DEST}/lib/libkopenafs.a
-       ${INSTALL_DATA} ${LIBKOPENAFS} ${DEST}/lib/${LIBKOPENAFS}
-       -ln -f -s ${LIBKOPENAFS} \
-               ${DEST}/lib/libkopenafs.${SHLIB_SUFFIX}
-       -ln -f -s ${LIBKOPENAFS} \
-               ${DEST}/lib/libkopenafs.${SHLIB_SUFFIX}.${MAJOR}
-       ${INSTALL_DATA} kopenafs.h ${DEST}/include/kopenafs.h
+       ${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