From: Benjamin Kaduk Date: Mon, 22 Sep 2014 21:02:27 +0000 (-0400) Subject: Allow building with MIT krb5 and external roken X-Git-Tag: upstream/1.8.0_pre1^2~551 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=119d2edf8a4b42ca4c3fd36d17e3621ddc0de60d;p=packages%2Fo%2Fopenafs.git Allow building with MIT krb5 and external roken 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 Reviewed-by: D Brashear Tested-by: D Brashear --- diff --git a/src/aklog/Makefile.in b/src/aklog/Makefile.in index e3769c589..725738dfe 100644 --- a/src/aklog/Makefile.in +++ b/src/aklog/Makefile.in @@ -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 \ diff --git a/src/config/Makefile.config.in b/src/config/Makefile.config.in index 7b3484699..b9ca6f13d 100644 --- a/src/config/Makefile.config.in +++ b/src/config/Makefile.config.in @@ -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 \ diff --git a/src/libafscp/Makefile.in b/src/libafscp/Makefile.in index 071dd633a..799372cdd 100644 --- a/src/libafscp/Makefile.in +++ b/src/libafscp/Makefile.in @@ -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 diff --git a/src/tsm41/Makefile.in b/src/tsm41/Makefile.in index bbe9dcf27..7984db382 100644 --- a/src/tsm41/Makefile.in +++ b/src/tsm41/Makefile.in @@ -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 diff --git a/src/venus/Makefile.in b/src/venus/Makefile.in index 71d47462d..b5bad6b54 100644 --- a/src/venus/Makefile.in +++ b/src/venus/Makefile.in @@ -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