From 6d2395ed2205d438cb8814689960b8f524454fea Mon Sep 17 00:00:00 2001 From: Benjamin Kaduk Date: Wed, 24 Sep 2014 00:11:07 -0400 Subject: [PATCH] Build kopenafs with libtool Prior to this commit, we were installing libkopenafs.so.1.1. As for the other libtoolizations, bump SONAME to 2.0 as a general precaution. Change-Id: I6edef89737cf057eb8aab8dfe2eacfb4f417dd6e Reviewed-on: http://gerrit.openafs.org/11484 Reviewed-by: Benjamin Kaduk Tested-by: BuildBot Reviewed-by: D Brashear --- src/kopenafs/Makefile.in | 102 ++++++++++++++------------------ src/kopenafs/libkopenafs.la.sym | 5 ++ src/kopenafs/libkopenafs.map | 14 ----- 3 files changed, 50 insertions(+), 71 deletions(-) create mode 100644 src/kopenafs/libkopenafs.la.sym delete mode 100644 src/kopenafs/libkopenafs.map diff --git a/src/kopenafs/Makefile.in b/src/kopenafs/Makefile.in index 4274cce37..7a1c8f558 100644 --- a/src/kopenafs/Makefile.in +++ b/src/kopenafs/Makefile.in @@ -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 diff --git a/src/kopenafs/libkopenafs.la.sym b/src/kopenafs/libkopenafs.la.sym new file mode 100644 index 000000000..5b7b1415f --- /dev/null +++ b/src/kopenafs/libkopenafs.la.sym @@ -0,0 +1,5 @@ +k_hasafs +k_haspag +k_pioctl +k_setpag +k_unlog diff --git a/src/kopenafs/libkopenafs.map b/src/kopenafs/libkopenafs.map deleted file mode 100644 index 0bc3f66a1..000000000 --- a/src/kopenafs/libkopenafs.map +++ /dev/null @@ -1,14 +0,0 @@ -# Export map for libkopenafs, used on Linux and Solaris to restrict -# exports from the shared libraries to just the public ABI. Add symbol -# versioning while we're at it, just in case. - -KOPENAFS_1.0 { - global: - k_hasafs; - k_setpag; - k_haspag; - k_unlog; - k_pioctl; - local: - *; -}; -- 2.39.5