mirror of
https://git.openafs.org/openafs.git
synced 2025-01-31 13:38:01 +00:00
74054de1bc
Commit 88cb536f (autoconf: detect ctf-tools and add ctf to libafs) introduced running ctfconvert and ctfmerge for libafs on Solaris, but didn't add any CTF data for userspace code. This commit causes the same commands to be run for every binary that we build (if the ctf tools are available). To accomplish this, also refactor how we run ctfconvert and ctfmerge. The approach in commit 88cb536f would require us to modify the makefile rule for every executable to run RUN_CTFCONVERT and RUN_CTFMERGE, which is somewhat impractical. So instead in this commit, we modify all of our *_CCRULE and *_LDRULE variables to wrap the compiler invocation with the new CC_WRAPPER script. This means our *RULE variables change from something like this: FOO_CCRULE = $(RUN_CC) $(CC) $(XXX_FLAGS) -o $@ to something like this: FOO_CCRULE = $(RUN_CC) $(CC_WRAPPER) $(CC) $(XXX_FLAGS) -o $@ CC_WRAPPER expands to the script src/config/cc-wrapper, which just runs ctfconvert or ctfmerge on the relevant files after the compiler/linker runs. If the CTF tools are not configured, CC_WRAPPER expands to nothing, to limit our impact on other platforms. This commit was developed in collaboration with mbarbosa@sinenomine.net. Reviewed-on: https://gerrit.openafs.org/13308 Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Benjamin Kaduk <kaduk@mit.edu> (cherry picked from commit c1d39153da00d5525b2f7874b2d214a7f1b1bb86) Change-Id: Ic357293a946f0759aa032f7c93b4b56e74e9209a Reviewed-on: https://gerrit.openafs.org/13487 Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Mark Vitale <mvitale@sinenomine.net> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
293 lines
8.5 KiB
Plaintext
293 lines
8.5 KiB
Plaintext
AC_PREREQ([2.60])
|
|
AC_INIT([OpenAFS],[m4_esyscmd(build-tools/git-version .)],[openafs-bugs@openafs.org],[],[http://www.openafs.org/])
|
|
AC_CONFIG_AUX_DIR([build-tools])
|
|
AC_CONFIG_MACRO_DIR([src/cf])
|
|
AC_CONFIG_SRCDIR([src/config/stds.h])
|
|
|
|
AC_CONFIG_HEADER([src/config/afsconfig.h])
|
|
MACOS_VERSION=1.8.3
|
|
LINUX_PKGREL=1.8.3
|
|
|
|
AC_SUBST([MACOS_VERSION])
|
|
|
|
dnl If the user hasn't specified CFLAGS don't let configure pick -g -O2
|
|
AS_IF([test -z "$CFLAGS"], [CFLAGS=" "])
|
|
|
|
AC_USE_SYSTEM_EXTENSIONS
|
|
|
|
AFS_LT_INIT
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PATH_PROGS([PATH_CPP], [cpp], [${CC-cc} -E], [$PATH:/lib:/usr/ccs/lib])
|
|
AC_SUBST([PATH_CPP])
|
|
OPENAFS_CONFIGURE_COMMON
|
|
|
|
dnl Probe for Kerberos. We have a few platform-specific overrides due to
|
|
dnl weird Kerberos implementations and installation locations.
|
|
AS_CASE([$AFS_SYSNAME],
|
|
[*_obsd*],
|
|
[KRB5_CPPFLAGS="-I/usr/include/kerberosV"],
|
|
|
|
[ppc_darwin_70],
|
|
[KRB5_CPPFLAGS="-I/usr/include"
|
|
KRB5_LDFLAGS="-L/usr/lib -Wl,-search_paths_first"])
|
|
RRA_LIB_KRB5_OPTIONAL
|
|
AS_CASE([$AFS_SYSNAME],
|
|
[hp_ux*|*_hpux*],
|
|
[KRB5_LIBS="-l:libkrb5.sl -l:libcom_err.sl"])
|
|
|
|
dnl Check for the characteristics of whatever Kerberos we found, if we found
|
|
dnl one.
|
|
BUILD_KRB5=no
|
|
MAKE_KRB5="#"
|
|
AS_IF([test x"$KRB5_LIBS" != x],
|
|
[BUILD_KRB5=yes
|
|
MAKE_KRB5=
|
|
RRA_LIB_KRB5_SWITCH
|
|
AC_CHECK_FUNCS([add_error_table \
|
|
add_to_error_table \
|
|
encode_krb5_enc_tkt_part \
|
|
encode_krb5_ticket \
|
|
krb5_524_conv_principal \
|
|
krb5_allow_weak_crypto \
|
|
krb5_c_encrypt \
|
|
krb5_decode_ticket \
|
|
krb5_enctype_enable \
|
|
krb5_free_keytab_entry_contents \
|
|
krb5_free_unparsed_name \
|
|
krb5_get_init_creds_opt_alloc \
|
|
krb5_get_prompt_types \
|
|
krb5_princ_size \
|
|
krb5_principal_get_comp_string])
|
|
AC_CHECK_FUNCS([krb5_524_convert_creds], [],
|
|
[AC_CHECK_FUNCS([krb524_convert_creds_kdc], [],
|
|
[AC_CHECK_LIB([krb524], [krb524_convert_creds_kdc],
|
|
[LIBS="-lkrb524 $LIBS"
|
|
KRB5_LIBS="-lkrb524 $KRB5_LIBS"
|
|
AC_CHECK_LIB([krb524], [krb5_524_conv_principal],
|
|
[AC_DEFINE([HAVE_KRB5_524_CONV_PRINCIPAL], [1],
|
|
[Define to 1 if you have the `krb5_524_conv_principal' function.])
|
|
])
|
|
AC_DEFINE([HAVE_KRB524_CONVERT_CREDS_KDC], [1],
|
|
[Define to 1 if you have the `krb524_convert_creds_kdc' function.])
|
|
])
|
|
])
|
|
])
|
|
AC_CHECK_HEADERS([kerberosIV/krb.h])
|
|
AC_CHECK_HEADERS([kerberosV/heim_err.h])
|
|
AC_CHECK_HEADERS([com_err.h et/com_err.h krb5/com_err.h])
|
|
AS_IF([test x"$ac_cv_header_com_err_h" != xyes \
|
|
&& test x"$ac_cv_header_et_com_err_h" != xyes \
|
|
&& test x"$ac_cv_header_krb5_com_err_h" != xyes],
|
|
[AC_MSG_ERROR([Cannot find a usable com_err.h])])
|
|
AC_CHECK_MEMBERS([krb5_creds.keyblock, krb5_creds.keyblock.enctype, krb5_creds.session,
|
|
krb5_prompt.type], [], [], [#include <krb5.h>])
|
|
AC_CHECK_MEMBERS([krb5_keytab_entry.key, krb5_keytab_entry.keyblock],
|
|
[], [], [#include <krb5.h>])
|
|
dnl If we have krb5_creds.session, we are using heimdal
|
|
dnl If we're using heimdal, aklog needs libasn1 for encode_EncTicketPart and a
|
|
dnl few other functions. But just aklog; not any of the other stuff that uses
|
|
dnl krb5.
|
|
AS_IF([test x"$ac_cv_member_krb5_creds_session" = xyes],
|
|
[AC_CHECK_LIB([asn1], [encode_EncTicketPart],
|
|
[AKLOG_KRB5_LIBS="-lasn1"])
|
|
])
|
|
RRA_LIB_KRB5_RESTORE
|
|
])
|
|
AC_SUBST([BUILD_KRB5])
|
|
AC_SUBST([MAKE_KRB5])
|
|
AC_SUBST([AKLOG_KRB5_LIBS])
|
|
|
|
dnl Probe for GSSAPI
|
|
RRA_LIB_GSSAPI
|
|
dnl Check for the characteristics of whatever GSSAPI we found, if we found one
|
|
BUILD_GSSAPI=no
|
|
AS_IF([test x"$GSSAPI_LIBS" != x],
|
|
[BUILD_GSSAPI=yes
|
|
])
|
|
AC_SUBST([BUILD_GSSAPI])
|
|
|
|
dnl Checks for summary
|
|
OPENAFS_SUMMARY_CHECK_NAMEI
|
|
|
|
AS_IF([test -d 'doc/man-pages'],
|
|
[MAN_MAKEFILE="doc/man-pages/Makefile doc/man-pages/install-man"],
|
|
[MAN_MAKEFILE=])
|
|
AS_IF([test -f 'doc/xml/AdminGuide/Makefile.in'],
|
|
[ADMINGUIDE_MAKEFILE="doc/xml/AdminGuide/Makefile"],
|
|
[ADMINGUIDE_MAKEFILE=])
|
|
AS_IF([test -f 'doc/xml/QuickStartUnix/Makefile.in'],
|
|
[QSUNIX_MAKEFILE="doc/xml/QuickStartUnix/Makefile"],
|
|
[QSUNIX_MAKEFILE=])
|
|
AS_IF([test -f 'doc/xml/UserGuide/Makefile.in'],
|
|
[USERGUIDE_MAKEFILE="doc/xml/UserGuide/Makefile"],
|
|
[USERGUIDE_MAKEFILE=])
|
|
AS_IF([test -f 'doc/xml/AdminRef/Makefile.in'],
|
|
[ADMINREF_MAKEFILE="doc/xml/AdminRef/Makefile"],
|
|
[ADMINREF_MAKEFILE=])
|
|
AS_IF([test -f 'doc/xml/mobi-fixup.xsl.in'],
|
|
[MOBI_FIXUP_XSL="doc/xml/mobi-fixup.xsl"],
|
|
[MOBI_FIXUP_XSL=])
|
|
AS_IF([test -f 'doc/doxygen/Doxyfile.in'],
|
|
[DOXYFILE="doc/doxygen/Doxyfile"],
|
|
[DOXYFILE=])
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
${MAN_MAKEFILE}
|
|
${ADMINGUIDE_MAKEFILE}
|
|
${QSUNIX_MAKEFILE}
|
|
${USERGUIDE_MAKEFILE}
|
|
${ADMINREF_MAKEFILE}
|
|
${MOBI_FIXUP_XSL}
|
|
${DOXYFILE}
|
|
src/afs/Makefile
|
|
src/afsd/Makefile
|
|
src/afsmonitor/Makefile
|
|
src/afsweb/Makefile
|
|
src/aklog/Makefile
|
|
src/audit/Makefile
|
|
src/auth/Makefile
|
|
src/auth/test/Makefile
|
|
src/bozo/Makefile
|
|
src/bozo/test/Makefile
|
|
src/bu_utils/Makefile
|
|
src/bubasics/Makefile
|
|
src/bucoord/Makefile
|
|
src/budb/Makefile
|
|
src/tbudb/Makefile
|
|
src/butc/Makefile
|
|
src/butm/Makefile
|
|
src/cmd/Makefile
|
|
src/cmd/test/Makefile
|
|
src/comerr/Makefile
|
|
src/comerr/test/Makefile
|
|
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.version-CML
|
|
src/config/Makefile.version-NOCML
|
|
src/config/cc-wrapper
|
|
src/config/shlib-build
|
|
src/config/shlib-install
|
|
src/crypto/hcrypto/Makefile
|
|
src/crypto/rfc3961/Makefile
|
|
src/dir/Makefile
|
|
src/dir/test/Makefile
|
|
src/dviced/Makefile
|
|
src/dvolser/Makefile
|
|
src/export/Makefile
|
|
src/finale/Makefile
|
|
src/fsint/Makefile
|
|
src/fsprobe/Makefile
|
|
src/gtx/Makefile
|
|
src/JAVA/libjafs/Makefile
|
|
src/kauth/Makefile
|
|
src/kauth/test/Makefile
|
|
src/kopenafs/Makefile
|
|
src/libacl/Makefile
|
|
src/libacl/test/Makefile
|
|
src/libadmin/Makefile
|
|
src/libadmin/adminutil/Makefile
|
|
src/libadmin/bos/Makefile
|
|
src/libadmin/cfg/Makefile
|
|
src/libadmin/cfg/test/Makefile
|
|
src/libadmin/client/Makefile
|
|
src/libadmin/kas/Makefile
|
|
src/libadmin/pts/Makefile
|
|
src/libadmin/samples/Makefile
|
|
src/libadmin/test/Makefile
|
|
src/libadmin/vos/Makefile
|
|
src/libafs/Makefile.common
|
|
src/libafs/MakefileProto.${MKAFS_OSTYPE}
|
|
${DARWIN_PLIST}
|
|
src/libafsauthent/Makefile
|
|
src/libafsrpc/Makefile
|
|
src/libuafs/Makefile.common
|
|
src/libuafs/MakefileProto.${MKAFS_OSTYPE}
|
|
src/log/Makefile
|
|
src/log/test/Makefile
|
|
src/lwp/Makefile
|
|
src/lwp/test/Makefile
|
|
src/opr/Makefile
|
|
src/packaging/MacOS/OpenAFS-debug.Description.plist
|
|
src/packaging/MacOS/OpenAFS-debug.Info.plist
|
|
src/packaging/MacOS/OpenAFS.Description.plist
|
|
src/packaging/MacOS/OpenAFS.Info.plist
|
|
src/packaging/MacOS/OpenAFS.info
|
|
src/packaging/MacOS/buildpkg.sh
|
|
src/packaging/MacOS/pkgbuild.sh
|
|
src/pam/Makefile
|
|
src/platform/Makefile
|
|
src/platform/${MKAFS_OSTYPE}/Makefile
|
|
src/platform/DARWIN/growlagent/Makefile
|
|
src/procmgmt/Makefile
|
|
src/procmgmt/test/Makefile
|
|
src/ptserver/Makefile
|
|
src/tptserver/Makefile
|
|
src/roken/Makefile
|
|
src/rx/Makefile
|
|
src/rx/bulk.example/Makefile
|
|
src/rx/bulktest/Makefile
|
|
src/rx/multi.example/Makefile
|
|
src/rx/simple.example/Makefile
|
|
src/rx/test/Makefile
|
|
src/rxdebug/Makefile
|
|
src/rxgen/Makefile
|
|
src/rxkad/Makefile
|
|
src/rxkad/test/Makefile
|
|
src/rxosd/Makefile
|
|
src/rxstat/Makefile
|
|
src/scout/Makefile
|
|
src/sys/Makefile
|
|
src/tbutc/Makefile
|
|
src/tests/Makefile
|
|
src/tests/run-tests
|
|
src/tools/Makefile
|
|
src/tools/dumpscan/Makefile
|
|
src/tools/rxperf/Makefile
|
|
src/tsalvaged/Makefile
|
|
src/tsm41/Makefile
|
|
src/tvolser/Makefile
|
|
src/ubik/Makefile
|
|
src/tubik/Makefile
|
|
src/update/Makefile
|
|
src/usd/Makefile
|
|
src/usd/test/Makefile
|
|
src/uss/Makefile
|
|
src/util/Makefile
|
|
src/util/test/Makefile
|
|
src/libafscp/Makefile
|
|
src/venus/Makefile
|
|
src/venus/test/Makefile
|
|
src/vfsck/Makefile
|
|
src/viced/Makefile
|
|
src/vlserver/Makefile
|
|
src/tvlserver/Makefile
|
|
src/vol/Makefile
|
|
src/vol/test/Makefile
|
|
src/volser/Makefile
|
|
src/xstat/Makefile
|
|
src/helper-splint.sh
|
|
tests/Makefile
|
|
tests/auth/Makefile
|
|
tests/cmd/Makefile
|
|
tests/common/Makefile
|
|
tests/opr/Makefile
|
|
tests/rpctestlib/Makefile
|
|
tests/rx/Makefile
|
|
tests/tap/Makefile
|
|
tests/util/Makefile
|
|
tests/volser/Makefile])
|
|
AC_CONFIG_COMMANDS([default],[chmod a+x src/config/shlib-build
|
|
chmod a+x src/config/shlib-install
|
|
chmod a+x src/config/cc-wrapper],[])
|
|
AC_OUTPUT
|
|
|
|
# print a final summary
|
|
OPENAFS_SUMMARY
|