Allow building with MIT krb5 and external roken
authorBenjamin Kaduk <kaduk@mit.edu>
Mon, 22 Sep 2014 21:02:27 +0000 (17:02 -0400)
committerD Brashear <shadow@your-file-system.com>
Wed, 8 Oct 2014 14:52:14 +0000 (10:52 -0400)
That is, an external roken which is part of a heimdal distribution,
with full headers and libraries, most notably krb5.h and libkrb5.

This adjusts the ordering of file- and module-specific compiler and
linker arguments so that the more specific arguments are able to
take precedence.  For general flags arguments, such as enabling
or disabling warnings or features, the more-specific settings should
come last, so as to override the flags set by default.  However,
for arguments that affect a global search list (e.g., for headers
or libraries),  the more-specific arguments must come first, so
as to be at the beginning of the search list.

We presently use per-file CFLAGS for both warning-type flags and
preprocessor (i.e., include path) type flags, so add an additional
file-specific setting for CPPFLAGS, which comes at the beginning of
the compiler invocation.

At present, MODULE_CFLAGS are essentially only used for preprocessor
functionality, so treat them as CPPFLAGS and put them right after
the per-file CPPFLAGS.  (It might be cleaner to rename them to
MODULE_CPPFLAGS, but that would be more churn than is needed.  If
such a distinction turns out to be necessary, it can be done at a
later date.)  Likewise the MODULE_LDFLAGS are generally being used
to affect the library search path, so put them early as well.

Make the necessary Makefile changes to use these new features to
allow building with MIT krb5 and external roken: put KRB5_CPPFLAGS
in per-file CPPFLAGS, and put LDFLAGS_KRB5 in MODULE_LDFLAGS for
aklog.

Change-Id: I1091223b3b75c782b39b9e189bdd47e52ebefae2
Reviewed-on: http://gerrit.openafs.org/11474
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: D Brashear <shadow@your-file-system.com>
Tested-by: D Brashear <shadow@your-file-system.com>

src/aklog/Makefile.in
src/config/Makefile.config.in
src/libafscp/Makefile.in
src/tsm41/Makefile.in
src/venus/Makefile.in

index e3769c5..725738d 100644 (file)
@@ -8,6 +8,7 @@ include @TOP_OBJDIR@/src/config/Makefile.pthread
 
 
 MODULE_CFLAGS=@KRB5_CPPFLAGS@ -DALLOW_REGISTER
+MODULE_LDFLAGS=@KRB5_LDFLAGS@
 
 AKLIBS= ${LIBS} $(LDFLAGS_krb5) $(LIB_krb5) @AKLOG_KRB5_LIBS@
 AFSLIBS= ${TOP_LIBDIR}/libafshcrypto.a \
index 7b34846..b9ca6f1 100644 (file)
@@ -221,26 +221,26 @@ 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
@@ -272,7 +272,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 \
index 071dd63..799372c 100644 (file)
@@ -4,7 +4,7 @@ include @TOP_OBJDIR@/src/config/Makefile.pthread
 
 #for debugging:
 #CFLAGS += -DAFSCP_DEBUG
-KRB5CFLAGS = @KRB5_CPPFLAGS@
+KRB5CPPFLAGS = @KRB5_CPPFLAGS@
 
 LIBOBJS = \
        afscp_callback.o \
@@ -39,8 +39,8 @@ depinstall: \
 ${TOP_INCDIR}/afs/afscp.h: afscp.h
        ${INSTALL_DATA} $? $@
 
-CFLAGS_afscp_util.o = $(KRB5CFLAGS)
-CFLAGS_afscp_server.o = $(KRB5CFLAGS)
+CPPFLAGS_afscp_util.o = $(KRB5CPPFLAGS)
+CPPFLAGS_afscp_server.o = $(KRB5CPPFLAGS)
 
 #
 # Install targets
index bbe9dcf..7984db3 100644 (file)
@@ -89,7 +89,7 @@ afs_dynamic_kerbauth: ${AUTH_KRB_OBJS} ${KAFSLIBS} ${AUTHFILES}
 
 aix_auth_common.o: ${srcdir}/aix_auth_common.c
 
-CFLAGS_aix_aklog.o = @KRB5_CPPFLAGS@
+CPPFLAGS_aix_aklog.o = @KRB5_CPPFLAGS@
 aix_aklog.o: ${srcdir}/aix_aklog.c
 
 CFLAGS_aix_ktc_krb.o = -DAFS_KERBEROS_ENV
index 71d4746..b5bad6b 100644 (file)
@@ -9,8 +9,6 @@ srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
 include @TOP_OBJDIR@/src/config/Makefile.lwp
 
-KRB5CFLAGS = @KRB5_CPPFLAGS@
-
 INCLS=${TOP_INCDIR}/afs/afsint.h \
        ${TOP_INCDIR}/afs/cmd.h \
        ${TOP_INCDIR}/afs/afsutil.h