Split up libtool support into LWP and pthread
authorSimon Wilkinson <sxw@your-file-system.com>
Sun, 16 Sep 2012 14:39:25 +0000 (15:39 +0100)
committerDerrick Brashear <shadow@your-file-system.com>
Sun, 16 Sep 2012 20:34:57 +0000 (13:34 -0700)
Currently, the type of library you build is determined by whether
the library is build in a pthread, or an lwp build directory. However,
this prevents building an LWP library in a directory that builds
pthreaded clients and servers.

As we want to continue to provide LWP libraries for backwards
compatibility, but move over to pthreaded binaries, this causes
some issues.

So, split up the libtool logic, so we have Makefile.libtool, which
you include if you want to build a pthreaded libtool library, and
Makefile.lwptool, for building a library which supports LWP and
pthreaded use. These only affect how .lo files are built - so the
.o files used for non-library objects are managed with the
Makefile.pthread and Makefile.lwp includes as before.

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

30 files changed:
Makefile.in
configure.ac
src/audit/Makefile.in
src/auth/Makefile.in
src/cmd/Makefile.in
src/comerr/Makefile.in
src/config/.gitignore
src/config/Makefile.config.in
src/config/Makefile.libtool.in
src/config/Makefile.lwp.in
src/config/Makefile.lwptool.in [new file with mode: 0644]
src/config/Makefile.pthread.in
src/fsint/Makefile.in
src/kauth/Makefile.in
src/libacl/Makefile.in
src/libafsauthent/Makefile.in
src/libafsrpc/Makefile.in
src/lwp/Makefile.in
src/opr/Makefile.in
src/ptserver/Makefile.in
src/rx/Makefile.in
src/rxkad/Makefile.in
src/rxstat/Makefile.in
src/sys/Makefile.in
src/tbutc/Makefile.in
src/ubik/Makefile.in
src/usd/Makefile.in
src/util/Makefile.in
src/vlserver/Makefile.in
src/volser/Makefile.in

index 6ccbb03..b8cfb81 100644 (file)
@@ -815,6 +815,7 @@ distclean: clean
        src/config/Makefile.config \
        src/config/Makefile.libtool \
        src/config/Makefile.lwp \
+       src/config/Makefile.lwptool \
        src/config/Makefile.pthread \
        src/config/Makefile.shared \
        src/config/Makefile.version \
index 03143ee..6277815 100644 (file)
@@ -154,6 +154,7 @@ src/config/Makefile \
 src/config/Makefile.config \
 src/config/Makefile.libtool \
 src/config/Makefile.lwp \
+src/config/Makefile.lwptool \
 src/config/Makefile.pthread \
 src/config/Makefile.shared \
 src/config/Makefile.version-CML \
index 037b3d9..8ac4e0f 100644 (file)
@@ -14,8 +14,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 LT_objs=audit.lo audit-file.lo audit-sysvmq.lo
 LT_deps = $(top_builddir)/src/rxkad/liboafs_rxkad.la \
index 784664b..e6001c2 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 BASE_objs= cellconfig.lo keys.lo userok.lo writeconfig.lo authcon.lo \
         acfg_errors.lo ktc_errors.lo netrestrict.lo token.xdr.lo token.lo \
index f0d2f4c..452aca9 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.pthread
+include @TOP_OBJDIR@/src/config/Makefile.libtool
 
 LT_objs=cmd_errors.lo cmd.lo config_file.lo AFS_component_version_number.lo
 LT_deps=$(top_builddir)/src/comerr/liboafs_comerr.la
index d6ec21b..75bc161 100644 (file)
@@ -6,8 +6,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 LT_objs = error_msg.lo et_name.lo com_err.lo
 LT_deps = $(top_builddir)/src/opr/liboafs_opr.la
index 3d3de33..14b88ac 100644 (file)
@@ -7,6 +7,7 @@
 /Makefile.config
 /Makefile.libtool
 /Makefile.lwp
+/Makefile.lwptool
 /Makefile.shared
 /Makefile.pthread
 /Makefile.version
index ecd15e9..a8ba484 100644 (file)
@@ -232,6 +232,30 @@ SHD_CCRULE_NOQ=$(RUN_CC_NOQ) $(MT_CC) $(SHD_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
 LT_CCRULE=$(RUN_CC) $(LIBTOOL) --quiet --mode=compile --tag=CC \
              $(MT_CC) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
 
+LT_current=0
+LT_revision=0
+LT_age=0
+
+# Basic rule to link a shared library.
+LT_LDLIB_shlib=$(LIBTOOL) --quiet --mode=link --tag=CC \
+               $(MT_CC) -rpath $(libdir) \
+               $(PTH_LDFLAGS) $(PTH_CFLAGS) $(LDFLAGS_$(@)) \
+               -o $@ \
+               -no-undefined \
+               -export-symbols $@.sym \
+               -version-info=$(LT_current):$(LT_revision):$(LT_age)
+
+
+# Link a static convenience library (contains no PIC code)
+LT_LDLIB_static=$(LIBTOOL) --quiet --mode=link --tag=CC \
+                $(MT_CC) -static $(LDFLAGS) $(DBG) $(OPTMZ) \
+                $(LDFLAGS_$(@)) -o $@
+
+# Link a convenience library for use in other libs (contains PIC code)
+LT_LDLIB_pic= $(LIBTOOL) --quiet --mode=link --tag=CC \
+              $(MT_CC) $(LDFLAGS) $(DBG) $(OPTMZ) \
+              $(LDFLAGS_$(@)) -o $@
+
 # Libtool - for objects that are built for both pthread and lwp libraries
 LTLWP_CCRULE=$(RUN_CC) $(LWPTOOL) --mode compile \
                 --lwpcc "$(CCOBJ)" \
@@ -247,7 +271,6 @@ LT_LDLIB_lwp=$(RUN_LD) $(LWPTOOL) --mode link \
                 -o $@ \
                 --
 
-
 # Use this to link an executable with one or more libtool libraries
 LT_LDRULE        = $(RUN_LD) $(LIBTOOL) --quiet --mode=link --tag=CC \
                             $(MT_CC) $(PTH_LDFLAGS) $(PTH_CFLAGS) \
@@ -260,7 +283,7 @@ LT_LDRULE_static = $(RUN_LD) $(LIBTOOL) --quiet --mode=link --tag=CC \
 LT_INSTALL_DATA=$(LIBTOOL) --quiet --mode=install $(INSTALL_DATA)
 LT_INSTALL_PROGRAM=$(LIBTOOL) --quiet --mode=install $(INSTALL_PROGRAM)
 
-LT_CLEAN=$(RM) -rf .libs *.la *.lo
+LT_CLEAN=$(RM) -rf .lwp .libs *.la *.lo
 
 # Default rules. These will be overriden if the module Makefile specifically
 # includes a particular type (lwp, pthread, or shared)
index 534809e..e0a732d 100644 (file)
@@ -1,34 +1,12 @@
 # This Makefile fragment contains rules necessary to build libtool libraries,
 # the Makefile rules necessary to use them are all in Makefile.config
 
-LT_current=0
-LT_revision=0
-LT_age=0
-
-# Basic rule to link a shared library.
-LT_LDLIB_shlib=$(LIBTOOL) --quiet --mode=link --tag=CC \
-               $(MT_CC) -rpath $(libdir) \
-               $(PTH_LDFLAGS) $(PTH_CFLAGS) $(LDFLAGS_$(@)) \
-               -o $@ \
-               -no-undefined \
-               -export-symbols $@.sym \
-               -version-info=$(LT_current):$(LT_revision):$(LT_age)
-
-
-# Link a static convenience library (contains no PIC code)
-LT_LDLIB_static=$(LIBTOOL) --quiet --mode=link --tag=CC \
-                $(MT_CC) -static $(LDFLAGS) $(DBG) $(OPTMZ) \
-                $(LDFLAGS_$(@)) -o $@
-
-# Link a convenience library for use in other libs (contains PIC code)
-LT_LDLIB_pic= $(LIBTOOL) --quiet --mode=link --tag=CC \
-              $(MT_CC) $(LDFLAGS) $(DBG) $(OPTMZ) \
-              $(LDFLAGS_$(@)) -o $@
-
-LT_CLEAN=$(RM) -rf .libs *.la *.lo
-
 .SUFFIXES: .lo
 
+.c.lo:
+       $(LT_CCRULE) $<
+%.lo: %.c
+       $(LT_CCRULE) $<
 .m.lo:
        $(LT_CCRULE) $<
 
index 0d536d6..0025968 100644 (file)
@@ -3,10 +3,6 @@ AFS_LDFLAGS = $(LWP_LDFLAGS)
 AFS_CCRULE     =$(LWP_CCRULE)
 AFS_CCRULE_NOQ =$(LWP_CCRULE_NOQ)
 
-.c.lo:
-       $(LTLWP_CCRULE) $<
-%.lo: %.c
-       $(LTLWP_CCRULE) $<
 .c.o:
        $(AFS_CCRULE) $<
 %.o: %.c
diff --git a/src/config/Makefile.lwptool.in b/src/config/Makefile.lwptool.in
new file mode 100644 (file)
index 0000000..4cdb417
--- /dev/null
@@ -0,0 +1,10 @@
+# This Makefile fragment contains rules for building libraries that are
+# an lwp/libtool mixture
+
+.SUFFIXES: .lo
+
+.c.lo:
+       $(LTLWP_CCRULE) $<
+%.lo: %.c
+       $(LTLWP_CCRULE) $<
+
index 471b0d4..f4af720 100644 (file)
@@ -10,9 +10,5 @@ AFS_LDRULE_NOQ=$(RUN_LD_NOQ) $(MT_CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@
        $(AFS_CCRULE) $<
 %.o: %.c
        $(AFS_CCRULE) $<
-.c.lo:
-       $(LT_CCRULE) $<
-%.lo: %.c
-       $(LT_CCRULE) $<
 .m.o:
        $(AFS_CCRULE) $<
index f0e3127..925e50e 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 LT_objs = \
        afsaux.lo \
index 37ce7ed..f57ef52 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 BASE_objs = kauth.xdr.lo kauth.cs.lo kaaux.lo client.lo authclient.lo \
            katoken.lo kautils.lo kalocalcell.lo kaerrors.lo
index 62e1406..a8a795e 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 LT_objs = aclprocs.lo netprocs.lo AFS_component_version_number.lo
 LT_deps = $(top_builddir)/src/ptserver/liboafs_prot.la
index 51ecccc..4033a80 100644 (file)
@@ -10,7 +10,6 @@
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
 include @TOP_OBJDIR@/src/config/Makefile.libtool
-include @TOP_OBJDIR@/src/config/Makefile.pthread
 
 LT_objs = \
        $(top_builddir)/src/audit/libauthent_audit.la \
index 54e3e6a..97f1cc5 100644 (file)
@@ -8,7 +8,6 @@
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
 include @TOP_OBJDIR@/src/config/Makefile.libtool
-include @TOP_OBJDIR@/src/config/Makefile.pthread
 
 LT_objs = \
        $(top_builddir)/src/fsint/libafsrpc_fsint.la \
index cf061a4..9ea5f77 100644 (file)
@@ -9,8 +9,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 DBG=${LWP_DBG}
 OPTMZ=${LWP_OPTMZ}
index 48430a6..6414697 100644 (file)
@@ -1,7 +1,7 @@
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.pthread
+include @TOP_OBJDIR@/src/config/Makefile.libtool
 
 LT_objs = assert.lo casestrcpy.lo rbtree.lo uuid.lo
 LT_libs = $(LIB_hcrypto) $(LIB_roken)
index 7f8b811..aa0c3a4 100644 (file)
@@ -6,8 +6,8 @@
 # directory or online at http://www.openafs.org/dl/license10.html
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 ENABLE_PTHREADED_UBIK=@ENABLE_PTHREADED_UBIK@
 
index 0af5f5a..b5cfe3b 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 MODULE_CFLAGS=$(RXDEBUG)
 
index 6351131..31ba16e 100644 (file)
@@ -9,8 +9,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 INCLS=${TOP_INCDIR}/rx/rx.h ${TOP_INCDIR}/rx/xdr.h \
        ${TOP_INCDIR}/rx/fcrypt.h \
index 9fb4a0d..a84e7ce 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 LT_objs = rxstat.cs.lo rxstat.ss.lo rxstat.xdr.lo rxstat.lo
 LT_deps = $(top_builddir)/src/rx/liboafs_rx.la
index a3e3e8d..fcad0ca 100644 (file)
@@ -9,8 +9,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 SFLAGS=-I${TOP_INCDIR}
 LIBS=libsys.a \
index e0886f8..a96b05c 100644 (file)
@@ -7,7 +7,6 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.pthread
 
 
index 76b6a4b..60b37bf 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 LT_authent_objs = uinit.lo ubikclient.lo uerrors.lo ubik_int.cs.lo \
                  ubik_int.xdr.lo
index c4249bb..ff5f9f6 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.pthread
+include @TOP_OBJDIR@/src/config/Makefile.libtool
 
 LT_objs = usd_file.lo AFS_component_version_number.lo
 LT_deps = $(top_builddir)/src/opr/liboafs_opr.la
index f669840..021e2dd 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 HELPER_SPLINT=@HELPER_SPLINT@
 
index 54980dc..d2ac689 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 ENABLE_PTHREADED_UBIK = @ENABLE_PTHREADED_UBIK@
 
index 1c4334b..87f4dd4 100644 (file)
@@ -7,8 +7,8 @@
 
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
-include @TOP_OBJDIR@/src/config/Makefile.libtool
 include @TOP_OBJDIR@/src/config/Makefile.lwp
+include @TOP_OBJDIR@/src/config/Makefile.lwptool
 
 HELPER_SPLINT=@HELPER_SPLINT@