autoconf: detect ctf-tools and add ctf to libafs
[openafs.git] / src / config / Makefile.config.in
index ecd15e9..af51d6e 100644 (file)
@@ -51,18 +51,23 @@ FSINCLUDES = @FSINCLUDES@
 GENCAT = @GENCAT@
 INCLUDE_LIBINTL = @INCLUDE_libintl@
 KERN_DBG = @KERN_DBG@
+CTFCONVERT = @CTFCONVERT@
+CTFMERGE = @CTFMERGE@
 KERN_OPTMZ = @KERN_OPTMZ@
 LD = @LD@
 LDFLAGS_roken = @LDFLAGS_roken@
 LDFLAGS_hcrypto = @LDFLAGS_hcrypto@
 LDFLAGS_krb5 = @KRB5_LDFLAGS@
+CPPFLAGS_gssapi = @GSSAPI_CPPFLAGS@
 LEX = @LEX@
 LIB_AFSDB = @LIB_AFSDB@
 LIB_crypt = @LIB_crypt@
 LIB_curses = @LIB_curses@
 LIB_hcrypto = @LIB_hcrypto@
 LIB_roken = @LIB_roken@
+buildtool_roken = @buildtool_roken@
 LIB_krb5 = @KRB5_LIBS@
+LIB_gssapi = @GSSAPI_LIBS@
 LIBTOOL= @LIBTOOL@
 LIBS = @LIBS@
 LIB_LIBINTL = @LIB_libintl@
@@ -93,7 +98,8 @@ REGEX_OBJ_PIC = @REGEX_OBJ_PIC@
 RM = @RM@
 RXDEBUG = @RXDEBUG@
 ROKEN_HEADERS = @ROKEN_HEADERS@
-ROKEN_LIBOBJS = @LIBOBJS@
+ROKEN_LTLIBOBJS = @LTLIBOBJS@
+SED = @SED@
 SHLIB_CFLAGS = @SHLIB_CFLAGS@
 SHLIB_LDFLAGS = @SHLIB_LDFLAGS@
 SHLIB_LINKER = @SHLIB_LINKER@
@@ -144,8 +150,9 @@ KERNELDIR = ../libafs
 #
 # Build helper apps
 #
-COMPILE_ET = ${TOP_OBJDIR}/src/comerr/compile_et
-RXGEN = ${TOP_OBJDIR}/src/rxgen/rxgen
+COMPILE_ET = @COMPILE_ET_PATH@
+CONFIGTOOL = @CONFIGTOOL_PATH@
+RXGEN = @RXGEN_PATH@
 SHELL = @SHELL@
 LWPTOOL = ${TOP_SRCDIR}/config/lwptool
 
@@ -195,6 +202,13 @@ RUN_CC_NOQ=$(RUN_CC_NOQ_V$(V))
 RUN_LD_NOQ=$(RUN_LD_NOQ_V$(V))
 
 #
+# Generate error table header and the source files independently for
+# parallel make.
+#
+COMPILE_ET_H=${COMPILE_ET} -emit h
+COMPILE_ET_C=${COMPILE_ET} -emit c
+
+#
 # Common/standard cflags/paths/etc
 # Cflags defaults, will be overridden later if necessary
 #
@@ -211,26 +225,53 @@ COMMON_CFLAGS=$(CFLAGS) ${DBG} ${OPTMZ} $(XCFLAGS) \
 COMMON_LDFLAGS=$(LDFLAGS) $(LDFLAGS_hcrypto) $(LDFLAGS_roken) $(DBG) $(OPTMZ)
 
 # LWP Flags
-LWP_CFLAGS=$(COMMON_CFLAGS) $(MODULE_CFLAGS)
-LWP_LDFLAGS=$(COMMON_LDFLAGS) $(MODULE_LDFLAGS) $(XLDFLAGS) $(ARCHFLAGS)
-LWP_CCRULE        =$(RUN_CC) $(CCOBJ) $(LWP_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
-LWP_CCRULE_NOQ=$(RUN_CC_NOQ) $(CCOBJ) $(LWP_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+LWP_CFLAGS=$(MODULE_CFLAGS) $(COMMON_CFLAGS)
+LWP_LDFLAGS=$(MODULE_LDFLAGS) $(COMMON_LDFLAGS) $(XLDFLAGS) $(ARCHFLAGS)
+LWP_CCRULE        =$(RUN_CC) $(CCOBJ) $(CPPFLAGS_$(@)) $(LWP_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+LWP_CCRULE_NOQ=$(RUN_CC_NOQ) $(CCOBJ) $(CPPFLAGS_$(@)) $(LWP_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
 
 # Pthreaded
-PTH_CFLAGS=$(COMMON_CFLAGS) $(MODULE_CFLAGS) $(MT_CFLAGS)
-PTH_LDFLAGS=$(COMMON_LDFLAGS) $(MODULE_LDFLAGS) $(MT_LDFLAGS)
-PTH_CCRULE        =$(RUN_CC) $(MT_CC) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
-PTH_CCRULE_NOQ=$(RUN_CC_NOQ) $(MT_CC) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+PTH_CFLAGS=$(MODULE_CFLAGS) $(COMMON_CFLAGS) $(MT_CFLAGS)
+PTH_LDFLAGS=$(MODULE_LDFLAGS) $(COMMON_LDFLAGS) $(MT_LDFLAGS)
+PTH_CCRULE        =$(RUN_CC) $(MT_CC) $(CPPFLAGS_$(@)) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+PTH_CCRULE_NOQ=$(RUN_CC_NOQ) $(MT_CC) $(CPPFLAGS_$(@)) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
 
 # Shared
-SHD_CFLAGS=$(COMMON_CFLAGS) $(MODULE_CFLAGS) $(MT_CFLAGS) $(SHLIB_CFLAGS)
-SHD_LDFLAGS=$(COMMON_LDFLAGS) $(MODULE_LDFLAGS) $(SHLIB_LDFLAGS)
-SHD_CCRULE        =$(RUN_CC) $(MT_CC) $(SHD_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
-SHD_CCRULE_NOQ=$(RUN_CC_NOQ) $(MT_CC) $(SHD_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+SHD_CFLAGS=$(MODULE_CFLAGS) $(COMMON_CFLAGS) $(MT_CFLAGS) $(SHLIB_CFLAGS)
+SHD_LDFLAGS=$(MODULE_LDFLAGS) $(COMMON_LDFLAGS) $(SHLIB_LDFLAGS)
+SHD_CCRULE        =$(RUN_CC) $(MT_CC) $(CPPFLAGS_$(@)) $(SHD_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+SHD_CCRULE_NOQ=$(RUN_CC_NOQ) $(MT_CC) $(CPPFLAGS_$(@)) $(SHD_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
 
 # Libtool - for objects that are part of pthread-only libraries
 LT_CCRULE=$(RUN_CC) $(LIBTOOL) --quiet --mode=compile --tag=CC \
-             $(MT_CC) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+             $(MT_CC) $(CPPFLAGS_$(@)) $(PTH_CFLAGS) $(CFLAGS_$(@)) -o $@ -c
+
+LT_current=0
+LT_revision=0
+LT_age=0
+
+# Basic rule to link a shared library.
+LT_LDLIB_shlib_common=$(LIBTOOL) --quiet --mode=link --tag=CC \
+                     $(MT_CC) -rpath $(libdir) \
+                     $(PTH_LDFLAGS) $(PTH_CFLAGS) $(LDFLAGS_$(@)) \
+                     -o $@ \
+                     -version-info $(LT_current):$(LT_revision):$(LT_age)
+
+LT_LDLIB_shlib=$(LT_LDLIB_shlib_common) -export-symbols $(srcdir)/$@.sym
+
+LT_LDLIB_shlib_missing=$(LT_LDLIB_shlib_common) -export-symbols-regex \
+       "($$(sed -e 's/^/^/' -e 's/$$/$$/' $(srcdir)/$@.sym | tr '\n' '|' | \
+       sed -e 's/|$$//'))"
+
+# 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 \
@@ -238,7 +279,7 @@ LTLWP_CCRULE=$(RUN_CC) $(LWPTOOL) --mode compile \
                 --mtcc "$(LIBTOOL) --quiet --mode=compile --tag=CC $(MT_CC) $(MT_CFLAGS)" \
                 -o $@ \
                 -- \
-                $(COMMON_CFLAGS) $(MODULE_CFLAGS) $(CFLAGS_$(@)) \
+                $(CPPFLAGS_$(@)) $(MODULE_CFLAGS) $(COMMON_CFLAGS) $(CFLAGS_$(@)) \
                 -c
 
 LT_LDLIB_lwp=$(RUN_LD) $(LWPTOOL) --mode link \
@@ -247,6 +288,11 @@ LT_LDLIB_lwp=$(RUN_LD) $(LWPTOOL) --mode link \
                 -o $@ \
                 --
 
+LT_LDLIB_lwp_NOQ=$(RUN_LD_NOQ) $(LWPTOOL) --mode link \
+                --ranlib "$(RANLIB)" \
+                --linker "$(AR) crv" \
+                -o $@ \
+                --
 
 # Use this to link an executable with one or more libtool libraries
 LT_LDRULE        = $(RUN_LD) $(LIBTOOL) --quiet --mode=link --tag=CC \
@@ -257,10 +303,14 @@ LT_LDRULE_static = $(RUN_LD) $(LIBTOOL) --quiet --mode=link --tag=CC \
                             $(MT_CC) -static $(PTH_LDFLAGS) $(PTH_CFLAGS) \
                             $(LDFLAGS_$(@)) -o $@
 
+LT_LDRULE_static_NOQ = $(RUN_LD_NOQ) $(LIBTOOL) --quiet --mode=link --tag=CC \
+                            $(MT_CC) -static $(PTH_LDFLAGS) $(PTH_CFLAGS) \
+                            $(LDFLAGS_$(@)) -o $@
+
 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)
@@ -268,3 +318,33 @@ LT_CLEAN=$(RM) -rf .libs *.la *.lo
 AFS_LDRULE         =$(RUN_LD) $(CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@
 AFS_LDRULE_NOQ =$(RUN_LD_NOQ) $(CC) $(AFS_LDFLAGS) $(AFS_CFLAGS) $(LDFLAGS_$(@)) -o $@
 
+RUN_CTFCONVERT=@RUN_CTFCONVERT() { \
+    CTFLABEL=$$1 ; \
+    CTFDBG=$$2 ; \
+    shift ; shift ; \
+    if test "x$${CTFDBG}" = "x" ; then exit 0; fi; \
+    if test "x${CTFCONVERT}" = "x" ; then exit 0; fi; \
+    if test "x${CTFMERGE}" = "x" ; then \
+        echo "refusing to run ctfconvert; missing ctfmerge"; \
+        exit 1; \
+    fi; \
+    for t in $$@ ; do \
+        echo "${CTFCONVERT} -g -l $${CTFLABEL} $$t"; \
+        ${CTFCONVERT} -g -l $${CTFLABEL} $$t; \
+    done ; \
+} ; RUN_CTFCONVERT
+
+RUN_CTFMERGE=@RUN_CTFMERGE () { \
+    CTFLABEL=$$1 ; \
+    CTFDBG=$$2 ; \
+    shift ; shift ; \
+    if test "x$${CTFDBG}" = "x" ; then exit 0; fi; \
+    if test "x${CTFMERGE}" = "x" ; then exit 0; fi; \
+    if test "x${CTFCONVERT}" = "x" ; then \
+        echo "refusing to run ctfmerge; missing ctfconvert"; \
+        exit 1; \
+    fi; \
+    echo "$(CTFMERGE) -g -l $${CTFLABEL} -o $$@"; \
+    $(CTFMERGE) -g -l $${CTFLABEL} -o $$@; \
+} ; RUN_CTFMERGE
+