cmd: Convert to using libtool
authorSimon Wilkinson <sxw@your-file-system.com>
Wed, 23 May 2012 20:43:57 +0000 (21:43 +0100)
committerDerrick Brashear <shadow@your-file-system.com>
Fri, 7 Sep 2012 18:29:14 +0000 (11:29 -0700)
Convert the libcmd and libcmd_pic libaries to being built using
libtool. Historically, these have been built as LWP code, but they
have no LWP dependencies, and no LWP-specific code within them. So,
make cmd a pthread-only library.

In addition to the libtool library liboafs_cmd.la, we build the
legacy libcmd.a and libcmd_pic.a as convenience libraries. libcmd64.a
(a 64bit variant, used solely by kdump), remains built through
"normal" means.

Update pthreaded users of libcmd to use the new liboafs_cmd.la. For
now, non-pthreaded users are left alone.

Change-Id: Id8445949754d1942f6e8752ae182b4e6f86fe94f
Reviewed-on: http://gerrit.openafs.org/8055
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>

19 files changed:
src/afsd/Makefile.in
src/aklog/Makefile.in
src/auth/Makefile.in
src/cmd/Makefile.in
src/cmd/liboafs_cmd.la.sym [new file with mode: 0644]
src/dviced/Makefile.in
src/dvolser/Makefile.in
src/libadmin/test/Makefile.in
src/rxkad/test/Makefile.in
src/tbudb/Makefile.in
src/tbutc/Makefile.in
src/tptserver/Makefile.in
src/tsalvaged/Makefile.in
src/tubik/Makefile.in
src/tvlserver/Makefile.in
src/tvolser/Makefile.in
src/venus/Makefile.in
src/viced/Makefile.in
tests/cmd/Makefile.in

index 517205c..075895e 100644 (file)
@@ -20,16 +20,17 @@ all: afsd vsys @ENABLE_FUSE_CLIENT@
 # Programs
 #
 
-AFSLIBS=${TOP_LIBDIR}/libcmd.a \
+AFSLIBS=$(top_builddir)/src/cmd/liboafs_cmd.la \
        ${TOP_LIBDIR}/libafsauthent.a \
        ${TOP_LIBDIR}/libsys.a \
        ${TOP_LIBDIR}/libafsutil.a \
        ${TOP_LIBDIR}/libafsrpc.a \
        $(top_builddir)/src/opr/liboafs_opr.la
 
-UAFSLIBS=${TOP_LIBDIR}/libuafs.a \
+UAFSLIBS=$(top_builddir)/src/cmd/liboafs_cmd.la \
+        ${TOP_LIBDIR}/libuafs.a \
         ${TOP_LIBDIR}/libafsutil.a \
-        ${TOP_LIBDIR}/libcmd.a \
+        $(top_builddir)/src/cmd/liboafs_cmd.la \
         ${TOP_LIBDIR}/libafsutil.a \
         $(top_builddir)/src/opr/liboafs_opr.la
 
index 7656eb8..778e992 100644 (file)
@@ -13,7 +13,7 @@ AKLIBS= ${LIBS} $(LDFLAGS_krb5) $(LIB_krb5)
 AFSLIBS= ${TOP_LIBDIR}/libafsauthent.a \
          ${TOP_LIBDIR}/libafsrpc.a \
         ${TOP_LIBDIR}/libafshcrypto.a \
-        ${TOP_LIBDIR}/libcmd.a \
+        $(top_builddir)/src/cmd/liboafs_cmd.la \
         $(top_builddir)/src/opr/liboafs_opr.la \
          ${TOP_LIBDIR}/util.a
 
index 4825a42..7a6668d 100644 (file)
@@ -12,6 +12,7 @@ include @TOP_OBJDIR@/src/config/Makefile.lwp
 
 OBJS= cellconfig.o keys.o ktc.o userok.o writeconfig.o authcon.o \
     acfg_errors.o ktc_errors.o token.xdr.o token.o realms.o netrestrict.o
+
 KOBJS= cellconfig.o keys.o ktc.krb.o userok.o writeconfig.o authcon.o \
     acfg_errors.o ktc_errors.o token.xdr.o token.o realms.o netrestrict.o
 
index c084b8b..4888d97 100644 (file)
@@ -7,14 +7,17 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.libtool
+include @TOP_OBJDIR@/src/config/Makefile.pthread
 
+LT_objs=cmd_errors.lo cmd.lo config_file.lo AFS_component_version_number.lo
+LT_deps=$(top_builddir)/src/comerr/liboafs_comerr.la
+LT_libs=
 
-LIBOBJS=cmd_errors.o cmd.o config_file.o
-LIBPICOBJS=cmd_errors_pic.o cmd_pic.o config_file_pic.o
 LIB64OBJS=cmd_errors64.o cmd64.o 
 
-all: ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/libcmd_pic.a ${TOP_INCDIR}/afs/cmd.h
+all: ${TOP_LIBDIR}/libcmd.a ${TOP_LIBDIR}/libcmd_pic.a \
+     ${TOP_INCDIR}/afs/cmd.h liboafs_cmd.la
 
 all64: all ${TOP_LIBDIR}/libcmd64.a
 
@@ -23,8 +26,8 @@ generated: cmd.h cmd_errors.c
 ${TOP_LIBDIR}/libcmd.a: libcmd.a
        ${INSTALL_DATA} $? $@
 
-${TOP_LIBDIR}/libcmd_pic.a: libcmd_pic.a
-       ${INSTALL_DATA} $? $@
+${TOP_LIBDIR}/libcmd_pic.a: libcmd_pic.la
+       $(INSTALL_DATA) .libs/libcmd_pic.a $@
 
 ${TOP_LIBDIR}/libcmd64.a: libcmd64.a
        ${INSTALL_DATA} $? $@
@@ -37,13 +40,10 @@ cmd.h: cmd_errors.et cmd.p.h
        ${COMPILE_ET} -p ${srcdir} cmd_errors -h cmd
 
 cmd_errors.c: cmd.h 
+cmd.lo: cmd.h
 
-cmd_errors.o: cmd_errors.c
-
-cmd.o: cmd.c cmd.h
-
-config_file.o: $(TOP_SRCDIR)/external/heimdal/krb5/config_file.c krb5_locl.h
-       $(AFS_CCRULE) -c $(TOP_SRCDIR)/external/heimdal/krb5/config_file.c
+config_file.lo: $(TOP_SRCDIR)/external/heimdal/krb5/config_file.c krb5_locl.h
+       $(LT_CCRULE) $(TOP_SRCDIR)/external/heimdal/krb5/config_file.c
 
 cmd_errors64.o: cmd_errors.c
        ${CC} $(COMMON_CFLAGS) $(CPPFLAGS) ${XCFLAGS64} \
@@ -53,57 +53,42 @@ cmd64.o: cmd.c cmd.h
        ${CC} $(COMMON_CFLAGS) $(CPPFLAGS) ${XCFLAGS64} \
                -c -o cmd64.o ${srcdir}/cmd.c
 
-cmd_errors_pic.o: cmd_errors.c
-       $(SHD_CCRULE) cmd_errors.c
-
-cmd_pic.o: cmd.c cmd.h
-       $(SHD_CCRULE) ${srcdir}/cmd.c
-
-config_file_pic.o: $(TOP_SRCDIR)/external/heimdal/krb5/config_file.c krb5_locl.h
-       $(SHD_CCRULE) $(TOP_SRCDIR)/external/heimdal/krb5/config_file.c
-
 libcmd64.a: ${LIB64OBJS} AFS_component_version_number64.o
        -$(RM) -f $@
        $(AR) crv $@ ${LIB64OBJS} AFS_component_version_number64.o
        $(RANLIB) $@
 
-libcmd.a: ${LIBOBJS} AFS_component_version_number.o
-       -$(RM) -f $@
-       $(AR) crv $@ ${LIBOBJS} AFS_component_version_number.o
-       $(RANLIB) $@
+libcmd.a: $(LT_objs)
+       $(LT_LDLIB_static) $(LT_objs)
 
-libcmd_pic.a: ${LIBPICOBJS} AFS_component_version_number_pic.o
-       -$(RM) -f $@
-       $(AR) crv $@ ${LIBPICOBJS} AFS_component_version_number_pic.o
-       $(RANLIB) $@
+libcmd_pic.la: $(LT_objs)
+       $(LT_LDLIB_pic) $(LT_objs)
+
+liboafs_cmd.la: $(LT_objs) $(LT_deps)
+       $(LT_LDLIB_shlib) $(LT_objs) $(LT_deps) $(LT_libs)
 
 AFS_component_version_number64.o: AFS_component_version_number.c
        ${CC} $(COMMON_CFLAGS) $(CPPFLAGS) ${XCFLAGS64} \
                -c -o AFS_component_version_number64.o \
                AFS_component_version_number.c
 
-AFS_component_version_number_pic.o: AFS_component_version_number.c
-       $(SHD_CCRULE) AFS_component_version_number.c
-
 #
 # Install targets
 #
-install: libcmd.a libcmd_pic.a cmd.h
+install: libcmd.a cmd.h
        ${INSTALL} -d ${DESTDIR}${libdir}/afs
        ${INSTALL} -d ${DESTDIR}${includedir}/afs
-       ${INSTALL_DATA} libcmd.a ${DESTDIR}${libdir}/afs/libcmd.a
-       ${INSTALL_DATA} libcmd_pic.a ${DESTDIR}${libdir}/afs/libcmd_pic.a
+       $(LT_INSTALL_DATA) libcmd.la $(DESTDIR)$(libdir)/afs/libcmd.la
        ${INSTALL_DATA} cmd.h ${DESTDIR}${includedir}/afs/cmd.h
 
 install64: install libcmd64.a
        ${INSTALL_DATA} libcmd64.a ${DESTDIR}${libdir}/afs/libcmd64.a
 
-dest: libcmd.a cmd.h libcmd_pic.a
+dest: libcmd.a cmd.h 
        ${INSTALL} -d ${DEST}/lib/afs
        ${INSTALL} -d ${DEST}/include/afs
        ${INSTALL_DATA} libcmd.a ${DEST}/lib/afs/libcmd.a
        ${INSTALL_DATA} cmd.h ${DEST}/include/afs/cmd.h
-       ${INSTALL_DATA} libcmd_pic.a ${DEST}/lib/afs/libcmd_pic.a
 
 dest64: dest libcmd64.a
        ${INSTALL_DATA} libcmd64.a ${DEST}/lib/afs/libcmd64.a
@@ -115,6 +100,8 @@ test tests:
        (cd test; $(MAKE) )
 
 clean:
-       $(RM) -f  *.a *.o ctest dtest cmd.h cmd_errors.c core AFS_component_version_number.c
+       $(LT_CLEAN)
+       $(RM) -f  *.a *.o ctest dtest cmd.h cmd_errors.c core \
+                 AFS_component_version_number.c
 
 include ../config/Makefile.version
diff --git a/src/cmd/liboafs_cmd.la.sym b/src/cmd/liboafs_cmd.la.sym
new file mode 100644 (file)
index 0000000..7919eda
--- /dev/null
@@ -0,0 +1,34 @@
+cmd_CreateSyntax
+cmd_CreateAlias
+cmd_AddParm
+cmd_AddParmAtOffset
+cmd_AddParmAlias
+cmd_Dispatch
+cmd_Seek
+cmd_SetBeforeProc
+cmd_SetAfterProc
+cmd_DisableAbbreviations
+cmd_DisablePositionalCommands
+cmd_Parse
+cmd_ParseLine
+cmd_OptionAsList
+cmd_OptionAsFlag
+cmd_OptionAsString
+cmd_OptionAsInt
+cmd_OptionAsUint
+cmd_OptionPresent
+cmd_FreeOptions
+cmd_FreeArgv
+cmd_IsAdministratorCommand
+initialize_CMD_error_table
+cmd_RawConfigParseFileMulti
+cmd_RawConfigParseFile
+cmd_RawConfigFileFree
+cmd_RawConfigGetString
+cmd_RawConfigGetBool
+cmd_RawConfigGetInt
+cmd_RawConfigGetList
+cmd_OpenConfigFile
+cmd_SetCommandName
+cmd_RawFile
+cmd_RawSection
index e01902b..2fd25a9 100644 (file)
@@ -54,7 +54,7 @@ SDBGOBJS = state_analyzer.o uuid.o dirpath.o fileutil.o ${TOP_LIBDIR}/util.a \
 
 LIBS=${TOP_LIBDIR}/libafsauthent.a \
      ${TOP_LIBDIR}/libafsrpc.a \
-     $(TOP_LIBDIR)/libcmd.a \
+     $(top_builddir)/src/cmd/liboafs_cmd.la \
      $(top_builddir)/src/opr/liboafs_opr.la \
      ${TOP_LIBDIR}/util.a
 
index 872e7f3..d5a6a12 100644 (file)
@@ -43,11 +43,11 @@ RXOBJS=rx_pthread.o
 objects= ${VOLSEROBJS} ${LWPOBJS} ${LIBACLOBJS} \
         ${UTILOBJS} ${DIROBJS} ${VOLOBJS} ${RXOBJS}
 
-LIBS=  ${TOP_LIBDIR}/libcmd.a          \
+LIBS=  $(top_builddir)/src/cmd/liboafs_cmd.la          \
        ${TOP_LIBDIR}/libafsauthent.a   \
        ${TOP_LIBDIR}/libafsrpc.a       \
        ${TOP_LIBDIR}/libafsutil.a      \
-       $(top_builddir)/src/opr/liboafs_opr.la \
+       $(top_builddir)/src/opr/liboafs_opr.la          \
        ${TOP_LIBDIR}/libusd.a
 
 all: davolserver 
index eb97854..163044a 100644 (file)
@@ -22,7 +22,7 @@ AFSCPLIBS =\
        $(TOP_LIBDIR)/libptsadmin.a \
        $(TOP_LIBDIR)/libafsauthent.a \
        $(TOP_LIBDIR)/libafsrpc.a \
-       $(TOP_LIBDIR)/libcmd.a \
+       $(top_builddir)/src/cmd/liboafs_cmd.la \
        $(top_builddir)/src/opr/liboafs_opr.la \
        $(TOP_LIBDIR)/libafsutil.a \
        ${TOP_LIBDIR}/libafshcrypto_lwp.a
index 4b6970f..1acfe0e 100644 (file)
@@ -8,7 +8,7 @@
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
 include @TOP_OBJDIR@/src/config/Makefile.lwp
-
+top_builddir=@TOP_OBJDIR@
 
 
 CFLAGS=-g -I. -I${srcdir} -I${TOP_OBJDIR}/src/config -I${TOP_INCDIR} ${XCFLAGS} ${ARCHFLAGS}
@@ -26,7 +26,8 @@ LIBS=${TOP_LIBDIR}/libauth.a \
        ${TOP_LIBDIR}/libafscom_err.a \
        ${TOP_LIBDIR}/util.a
 
-THLIBS= ${TOP_LIBDIR}/libcmd.a  ${TOP_LIBDIR}/libafscom_err.a \
+THLIBS= $(top_builddir)/src/cmd/liboafs_cmd.la  \
+       ${TOP_LIBDIR}/libafscom_err.a \
        ${TOP_LIBDIR}/libafsauthent.a ${TOP_LIBDIR}/libafsrpc.a \
        ${MT_LIBS} ${ULIBS} ${XLIBS} ${LIBRPC} -lpthread
 
@@ -35,6 +36,7 @@ THRULE = ${MT_CC} $(COMMON_CFLAGS) $(MT_CFLAGS)
 noversion all test system: stress
 
 clean:
+       $(LT_CLEAN)
        $(RM) -f *.o stress.cs.c stress.ss.c stress.xdr.c stress.h \
                stress_errs.c stress_errs.h stress th_*
 
@@ -93,7 +95,7 @@ stress: stress.o stress.xdr.o stress_c.o stress_s.o stress.cs.o \
 th_stress: th_stress.o th_stress.xdr.o th_stress_c.o th_stress_s.o \
                th_stress.cs.o th_stress.ss.o stress_errs.o \
                ${LIBRPC}
-       $(AFS_LDRULE) th_stress.o th_stress.xdr.o th_stress_c.o \
+       $(LT_LDRULE_static) th_stress.o th_stress.xdr.o th_stress_c.o \
                th_stress_s.o th_stress.cs.o th_stress.ss.o stress_errs.o \
                ${THLIBS} ${XLIBS}
 
index 8287b5e..a0345a6 100644 (file)
@@ -43,7 +43,7 @@ LIBS=${RXOBJS} ${UTILOBJS} \
        ${TOP_LIBDIR}/libubik_pthread.a \
        ${TOP_LIBDIR}/libafsauthent.a \
        ${TOP_LIBDIR}/libafsrpc.a \
-       ${TOP_LIBDIR}/libcmd.a \
+       $(top_builddir)/src/cmd/liboafs_cmd.la \
        $(top_builddir)/src/opr/liboafs_opr.la \
        ${TOP_LIBDIR}/libafsutil.a
 
index fc48dc1..65d3791 100644 (file)
@@ -55,7 +55,7 @@ BUTCLIBS=${TOP_LIBDIR}/libbudb.a \
             ${BUTMLIBS} \
            ${TOP_LIBDIR}/libafsauthent.a \
            ${TOP_LIBDIR}/libafsrpc.a \
-            ${TOP_LIBDIR}/libcmd.a \
+            $(top_builddir)/src/cmd/liboafs_cmd.la \
            ${TOP_LIBDIR}/util.a \
            $(top_builddir)/src/opr/liboafs_opr.la \
            ${TOP_LIBDIR}/libusd.a \
index de29a4a..6cdf527 100644 (file)
@@ -38,7 +38,7 @@ LIBS_common=$(RXOBJS) $(UTILOBJS) \
        ${TOP_LIBDIR}/libubik_pthread.a \
        ${TOP_LIBDIR}/libafsauthent.a \
        ${TOP_LIBDIR}/libafsrpc.a \
-       ${TOP_LIBDIR}/libcmd.a \
+       $(top_builddir)/src/cmd/liboafs_cmd.la \
        ${TOP_LIBDIR}/libafsutil.a \
        $(top_builddir)/src/opr/liboafs_opr.la
 
@@ -185,7 +185,7 @@ pterror.h pterror.c: ${PTSERVER}/pterror.et
        $(RM) -f pterror.h pterror.c
        ${COMPILE_ET} -p ${srcdir}/${PTSERVER} pterror
 
-pts: pts.o ${TOP_LIBDIR}/libcmd.a $(LIBS_client) ${INCLS}
+pts: pts.o $(LIBS_client) ${INCLS}
        $(LT_LDRULE_static) pts.o \
                ${LIBS_client} $(LIB_hcrypto) $(LIB_roken) ${MT_LIBS} ${XLIBS}
 
index 4114621..d021055 100644 (file)
@@ -53,10 +53,10 @@ SSSDEBUG_OBJS = salvsync-debug.o physio.o common.o ${UTILOBJS} ${VLIBOBJS} ${DIR
 LIBS=   ${TOP_LIBDIR}/libafsauthent.a \
        ${TOP_LIBDIR}/libafsrpc.a \
        ${TOP_LIBDIR}/util.a \
-       ${TOP_LIBDIR}/libcmd.a \
+       $(top_builddir)/src/cmd/liboafs_cmd.la \
        $(top_builddir)/src/opr/liboafs_opr.la
 
-SLIBS= ${TOP_LIBDIR}/libcmd.a \
+SLIBS= ${top_builddir}/src/cmd/liboafs_cmd.la \
        ${TOP_LIBDIR}/libdir.a \
        ${TOP_LIBDIR}/librx.a \
        ${TOP_LIBDIR}/liblwp.a \
index f8dcbfc..ed95b20 100644 (file)
@@ -32,7 +32,7 @@ UTILOBJS=uuid.o serverLog.o fileutil.o dirpath.o \
 
 LIBS=${RXOBJS} ${UTILOBJS} ${TOP_LIBDIR}/libafsauthent.a ${TOP_LIBDIR}/libafsrpc.a \
      $(top_builddir)/src/comerr/liboafs_comerr.la \
-     $(TOP_LIBDIR)/libcmd.a \
+     ${top_builddir}/src/cmd/liboafs_cmd.la \
      ${TOP_LIBDIR}/libsys.a \
      $(top_builddir)/src/opr/liboafs_opr.la \
      ${XLIBS} ${MT_LIBS}
index 163f64c..76a523c 100644 (file)
@@ -34,7 +34,7 @@ INCLS=${TOP_INCDIR}/ubik.h \
 LIBS_common = \
        ${TOP_LIBDIR}/libubik_pthread.a \
        ${TOP_LIBDIR}/libafsauthent.a \
-       ${TOP_LIBDIR}/libcmd.a \
+       $(top_builddir)/src/cmd/liboafs_cmd.la \
        ${TOP_LIBDIR}/libafsrpc.a \
        ${TOP_LIBDIR}/libafsutil.a \
        $(top_builddir)/src/opr/liboafs_opr.la
@@ -163,7 +163,7 @@ Kvldbint.xdr.c: ${VLSERVER}/vldbint.xg
        ${RXGEN} -A -x -k -c -o $@ ${srcdir}/${VLSERVER}/vldbint.xg
 
 vlclient: vlclient.o $(OBJS) $(LIBS) ${INCLS}
-       $(LT_LDRULE_static) vlclient.o $(OBJS) ${TOP_LIBDIR}/libcmd.a \
+       $(LT_LDRULE_static) vlclient.o $(OBJS) \
                $(LIBS_server) $(LIB_hcrypto) $(LIB_roken) ${MT_LIBS} ${XLIBS}
                
 vlclient.o: ${VLSERVER}/vlclient.c
index 3ab86a3..e1e6ee1 100644 (file)
@@ -50,7 +50,7 @@ vosobjects= ${VOSOBJS} ${VLSERVEROBJS} ${LIBACLOBJS} ${UTILOBJS} ${DIROBJS} \
        ${VOLOBJS} ${RXOBJS}
 
 LIBS_common = \
-       ${TOP_LIBDIR}/libcmd.a          \
+       $(top_builddir)/src/cmd/liboafs_cmd.la \
        ${TOP_LIBDIR}/libafsauthent.a   \
        ${TOP_LIBDIR}/libafsutil.a      \
        ${TOP_LIBDIR}/libusd.a          \
index 1619947..791f757 100644 (file)
@@ -27,7 +27,7 @@ AFSIO_INCLS=${TOP_INCDIR}/afs/afsint.h \
 AFSIO_LIBS=${TOP_LIBDIR}/libafscp.a \
        ${TOP_LIBDIR}/libafsauthent.a \
        ${TOP_LIBDIR}/libafsrpc.a \
-       ${TOP_LIBDIR}/libcmd.a \
+       $(top_builddir)/src/cmd/liboafs_cmd.la \
        $(TOP_LIBDIR)/libafsutil.a \
        $(top_builddir)/src/opr/liboafs_opr.la
 
index 6388324..306a933 100644 (file)
@@ -49,7 +49,7 @@ objects= ${VICEDOBJS} ${VLSERVEROBJS} ${LWPOBJS} ${LIBACLOBJS} \
 
 LIBS=${TOP_LIBDIR}/libafsauthent.a \
      ${TOP_LIBDIR}/libafsrpc.a \
-     $(TOP_LIBDIR)/libcmd.a \
+     $(top_builddir)/src/cmd/liboafs_cmd.la \
      $(top_builddir)/src/opr/liboafs_opr.la \
      ${TOP_LIBDIR}/util.a
 
index e8e5b86..570f868 100644 (file)
@@ -8,7 +8,7 @@ include @TOP_OBJDIR@/src/config/Makefile.pthread
 MODULE_CFLAGS = -I$(srcdir)/../..
 
 LIBS = ../tap/libtap.a \
-       $(abs_top_builddir)/lib/libcmd.a \
+       $(abs_top_builddir)/src/cmd/liboafs_cmd.la \
        $(abs_top_builddir)/src/comerr/liboafs_comerr.la \
        $(abs_top_builddir)/src/opr/liboafs_opr.la \
        $(abs_top_builddir)/lib/util.a