From 5adaa8f50af31056a06934bc219e7f5ca33c1ae5 Mon Sep 17 00:00:00 2001 From: Greg Hudson Date: Thu, 3 Jan 2013 11:07:15 -0500 Subject: Move krb5-config to new src/build-tools directory In preparation for adding a bunch of pkg-config data files, move krb5-config into a new source tree subdirectory containing tools we provide as outputs to other build systems. --- .gitignore | 3 +- src/Makefile.in | 17 +-- src/build-tools/Makefile.in | 15 +++ src/build-tools/deps | 1 + src/build-tools/krb5-config.in | 260 +++++++++++++++++++++++++++++++++++++++++ src/build-tools/t_krbconf | 38 ++++++ src/configure.in | 4 +- src/krb5-config.in | 260 ----------------------------------------- src/t_krbconf | 38 ------ 9 files changed, 320 insertions(+), 316 deletions(-) create mode 100644 src/build-tools/Makefile.in create mode 100644 src/build-tools/deps create mode 100755 src/build-tools/krb5-config.in create mode 100644 src/build-tools/t_krbconf delete mode 100755 src/krb5-config.in delete mode 100644 src/t_krbconf diff --git a/.gitignore b/.gitignore index 6ab9237adb..f8c7c9d1af 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,6 @@ testlog /src/config.log /src/config.status /src/configure -/src/krb5-config /src/pyrunenv.vals /src/runenv.py @@ -39,6 +38,8 @@ testlog /src/appl/user_user/uuclient /src/appl/user_user/uuserver +/src/build-tools/krb5-config + /src/clients/kdestroy/kdestroy /src/clients/kinit/kinit diff --git a/src/Makefile.in b/src/Makefile.in index 2c658310f7..da2cfe5577 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -14,7 +14,7 @@ SUBDIRS=util include lib \ @ldap_plugin_dir@ \ plugins/preauth/pkinit \ kdc kadmin slave clients appl tests \ - config-files man doc @po@ + config-files build-tools man doc @po@ WINSUBDIRS=include util lib ccapi windows clients appl BUILDTOP=$(REL). LOCALINCLUDES = -I$(srcdir) @@ -29,8 +29,6 @@ HDRS = DISTFILES = $(SRCS) $(HDRS) COPYING COPYING.LIB ChangeLog Makefile.in -all-unix:: krb5-config - # Lots of things will start to depend on the thread support, which # needs autoconf.h, but building "all" in include requires that util/et # have been built first. Until we can untangle this, let's just check @@ -88,7 +86,7 @@ TAGS: $(SRCS) clean-:: clean-windows clean-unix:: - $(RM) *.o core krb5-config + $(RM) *.o core mostlyclean: clean @@ -533,17 +531,6 @@ install-windows:: -copy clients\kswitch\$(OUTPRE)kswitch.pdb "$(KRB_INSTALL_DIR)\bin\." copy windows\leash\htmlhelp\*.chm "$(KRB_INSTALL_DIR)\bin\." -install-unix:: - $(INSTALL_SCRIPT) krb5-config \ - $(DESTDIR)$(CLIENT_BINDIR)/krb5-config - -krb5-config: $(srcdir)/krb5-config.in config.status - $(SHELL) config.status krb5-config - -# Test to ensure that krb5-config does not spit out things like -# $(PURE) or $(LDFLAGS) in case someone changes config/shlib.conf -check-unix:: krb5-config - $(SHELL) $(srcdir)/t_krbconf check-prerecurse: runenv.py # Create a test realm and spawn a shell in an environment pointing to it. diff --git a/src/build-tools/Makefile.in b/src/build-tools/Makefile.in new file mode 100644 index 0000000000..fa5690006f --- /dev/null +++ b/src/build-tools/Makefile.in @@ -0,0 +1,15 @@ +mydir=build-tools +BUILDTOP=$(REL).. + +all-unix:: krb5-config + +krb5-config: $(srcdir)/krb5-config.in $(BUILDTOP)/config.status + cd $(BUILDTOP) && $(SHELL) config.status $(mydir)/$@ + +install-unix:: + $(INSTALL_SCRIPT) krb5-config $(DESTDIR)$(CLIENT_BINDIR)/krb5-config + +# Test to ensure that krb5-config does not spit out things like +# $(PURE) or $(LDFLAGS) in case someone changes config/shlib.conf +check-unix:: krb5-config + $(SHELL) $(srcdir)/t_krbconf diff --git a/src/build-tools/deps b/src/build-tools/deps new file mode 100644 index 0000000000..2feac3c9d3 --- /dev/null +++ b/src/build-tools/deps @@ -0,0 +1 @@ +# No dependencies here. diff --git a/src/build-tools/krb5-config.in b/src/build-tools/krb5-config.in new file mode 100755 index 0000000000..e688626f39 --- /dev/null +++ b/src/build-tools/krb5-config.in @@ -0,0 +1,260 @@ +#!/bin/sh + +# Copyright 2001, 2002, 2003 by the Massachusetts Institute of Technology. +# All Rights Reserved. +# +# Export of this software from the United States of America may +# require a specific license from the United States Government. +# It is the responsibility of any person or organization contemplating +# export to obtain such a license before exporting. +# +# WITHIN THAT CONSTRAINT, permission to use, copy, modify, and +# distribute this software and its documentation for any purpose and +# without fee is hereby granted, provided that the above copyright +# notice appear in all copies and that both that copyright notice and +# this permission notice appear in supporting documentation, and that +# the name of M.I.T. not be used in advertising or publicity pertaining +# to distribution of the software without specific, written prior +# permission. Furthermore if you modify this software you must label +# your software as modified software and not distribute it in such a +# fashion that it might be confused with the original M.I.T. software. +# M.I.T. makes no representations about the suitability of +# this software for any purpose. It is provided "as is" without express +# or implied warranty. +# +# + +# Configurable parameters set by autoconf +version_string="Kerberos 5 release @KRB5_VERSION@" + +prefix=@prefix@ +exec_prefix=@exec_prefix@ +includedir=@includedir@ +libdir=@libdir@ +CC_LINK='@CC_LINK@' +KDB5_DB_LIB=@KDB5_DB_LIB@ +LDFLAGS='@LDFLAGS@' +RPATH_FLAG='@RPATH_FLAG@' +PROG_RPATH_FLAGS='@PROG_RPATH_FLAGS@' +PTHREAD_CFLAGS='@PTHREAD_CFLAGS@' +DL_LIB='@DL_LIB@' +DEFCCNAME='@DEFCCNAME@' +DEFKTNAME='@DEFKTNAME@' +DEFCKTNAME='@DEFCKTNAME@' + +LIBS='@LIBS@' +GEN_LIB=@GEN_LIB@ + +# Defaults for program +library=krb5 + +# Some constants +vendor_string="Massachusetts Institute of Technology" + +# Process arguments +# Yes, we are sloppy, library specifications can come before options +while test $# != 0; do + case $1 in + --all) + do_all=1 + ;; + --cflags) + do_cflags=1 + ;; + --defccname) + do_defccname=1 + ;; + --defcktname) + do_defcktname=1 + ;; + --defktname) + do_defktname=1 + ;; + --deps) + do_deps=1 + ;; + --exec-prefix) + do_exec_prefix=1 + ;; + --help) + do_help=1 + ;; + --libs) + do_libs=1 + ;; + --prefix) + do_prefix=1 + ;; + --vendor) + do_vendor=1 + ;; + --version) + do_version=1 + ;; + krb5) + library=krb5 + ;; + gssapi) + library=gssapi + ;; + kadm-client) + library=kadm_client + ;; + kadm-server) + library=kadm_server + ;; + kdb) + library=kdb + ;; + *) + echo "$0: Unknown option \`$1' -- use \`--help' for usage" + exit 1 + esac + shift +done + +# If required options - provide help +if test -z "$do_all" -a -z "$do_version" -a -z "$do_vendor" -a \ + -z "$do_prefix" -a -z "$do_vendor" -a -z "$do_exec_prefix" -a \ + -z "$do_defccname" -a -z "$do_defktname" -a -z "$do_defcktname" -a \ + -z "$do_cflags" -a -z "$do_libs"; then + do_help=1 +fi + + +if test -n "$do_help"; then + echo "Usage: $0 [OPTIONS] [LIBRARIES]" + echo "Options:" + echo " [--help] Help" + echo " [--all] Display version, vendor, and various values" + echo " [--version] Version information" + echo " [--vendor] Vendor information" + echo " [--prefix] Kerberos installed prefix" + echo " [--exec-prefix] Kerberos installed exec_prefix" + echo " [--defccname] Show built-in default ccache name" + echo " [--defktname] Show built-in default keytab name" + echo " [--defcktname] Show built-in default client keytab name" + echo " [--cflags] Compile time CFLAGS" + echo " [--libs] List libraries required to link [LIBRARIES]" + echo "Libraries:" + echo " krb5 Kerberos 5 application" + echo " gssapi GSSAPI application with Kerberos 5 bindings" + echo " kadm-client Kadmin client" + echo " kadm-server Kadmin server" + echo " kdb Application that accesses the kerberos database" + exit 0 +fi + +if test -n "$do_all"; then + all_exit= + do_version=1 + do_prefix=1 + do_exec_prefix=1 + do_vendor=1 + title_version="Version: " + title_prefix="Prefix: " + title_exec_prefix="Exec_prefix: " + title_vendor="Vendor: " +else + all_exit="exit 0" +fi + +if test -n "$do_version"; then + echo "$title_version$version_string" + $all_exit +fi + +if test -n "$do_vendor"; then + echo "$title_vendor$vendor_string" + $all_exit +fi + +if test -n "$do_prefix"; then + echo "$title_prefix$prefix" + $all_exit +fi + +if test -n "$do_exec_prefix"; then + echo "$title_exec_prefix$exec_prefix" + $all_exit +fi + +if test -n "$do_defccname"; then + echo "$DEFCCNAME" + $all_exit +fi + +if test -n "$do_defktname"; then + echo "$DEFKTNAME" + $all_exit +fi + +if test -n "$do_defcktname"; then + echo "$DEFCKTNAME" + $all_exit +fi + +if test -n "$do_cflags"; then + if test x"$includedir" != x"/usr/include" ; then + echo "-I${includedir}" + else + echo '' + fi +fi + + +if test -n "$do_libs"; then + # Assumes /usr/lib is the standard library directory everywhere... + if test "$libdir" = /usr/lib; then + libdirarg= + else + libdirarg="-L$libdir" + fi + # Ugly gross hack for our build tree + lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \ + -e 's/\$(PURE)//' \ + -e 's#\$(PROG_RPATH_FLAGS)#'"$PROG_RPATH_FLAGS"'#' \ + -e 's#\$(PROG_RPATH)#'$libdir'#' \ + -e 's#\$(PROG_LIBPATH)#'$libdirarg'#' \ + -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \ + -e 's#\$(LDFLAGS)#'"$LDFLAGS"'#' \ + -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \ + -e 's#\$(CFLAGS)##'` + + if test $library = 'kdb'; then + lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB" + library=krb5 + fi + + if test $library = 'kadm_server'; then + lib_flags="$lib_flags -lkadm5srv_mit -lkdb5 $KDB5_DB_LIB" + library=kadm_common + fi + + if test $library = 'kadm_client'; then + lib_flags="$lib_flags -lkadm5clnt_mit" + library=kadm_common + fi + + if test $library = 'kadm_common'; then + lib_flags="$lib_flags -lgssrpc" + library=gssapi + fi + + if test $library = 'gssapi'; then + lib_flags="$lib_flags -lgssapi_krb5" + library=krb5 + fi + + if test $library = 'krb5'; then + lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err" + fi + + # If we ever support a flag to generate output suitable for static + # linking, we would output "-lkrb5support $GEN_LIB $LIBS $DL_LIB" + # here. + + echo $lib_flags +fi + +exit 0 diff --git a/src/build-tools/t_krbconf b/src/build-tools/t_krbconf new file mode 100644 index 0000000000..5a141f5f58 --- /dev/null +++ b/src/build-tools/t_krbconf @@ -0,0 +1,38 @@ +#!/bin/sh + +# Copyright 2003 by the Massachusetts Institute of Technology. +# All Rights Reserved. +# +# Export of this software from the United States of America may +# require a specific license from the United States Government. +# It is the responsibility of any person or organization contemplating +# export to obtain such a license before exporting. +# +# WITHIN THAT CONSTRAINT, permission to use, copy, modify, and +# distribute this software and its documentation for any purpose and +# without fee is hereby granted, provided that the above copyright +# notice appear in all copies and that both that copyright notice and +# this permission notice appear in supporting documentation, and that +# the name of M.I.T. not be used in advertising or publicity pertaining +# to distribution of the software without specific, written prior +# permission. Furthermore if you modify this software you must label +# your software as modified software and not distribute it in such a +# fashion that it might be confused with the original M.I.T. software. +# M.I.T. makes no representations about the suitability of +# this software for any purpose. It is provided "as is" without express +# or implied warranty. + +echo "Testing if krb5-config outputs shell variables" +echo " Testing --libs argument" +if ./krb5-config --libs kdb | egrep -s '\$' > /dev/null; then + echo "Error './krb5-config --libs kdb' contains shell variables" + exit 1 +fi + +echo " Testing --cflags argument" +if ./krb5-config --cflags | egrep -s '\$' > /dev/null; then + echo "Error './krb5-config --cflags' contains shell variables" + exit 1 +fi +echo "krb5-config tests pass" +exit 0 diff --git a/src/configure.in b/src/configure.in index faf93a1c94..69863d2194 100644 --- a/src/configure.in +++ b/src/configure.in @@ -1290,7 +1290,7 @@ AC_DEFINE_UNQUOTED(DEFKTNAME, ["$DEFKTNAME"], [Define to default keytab name]) AC_DEFINE_UNQUOTED(DEFCKTNAME, ["$DEFCKTNAME"], [Define to default client keytab name]) -AC_CONFIG_FILES(krb5-config, [chmod +x krb5-config]) +AC_CONFIG_FILES(build-tools/krb5-config, [chmod +x build-tools/krb5-config]) V5_AC_OUTPUT_MAKEFILE(. util util/support util/profile util/profile/testmod util/send-pr @@ -1323,7 +1323,7 @@ dnl lib/krb5/ccache/ccapi dnl ccapi ccapi/lib ccapi/lib/unix ccapi/server ccapi/server/unix ccapi/test - kdc slave config-files man doc include + kdc slave config-files build-tools man doc include plugins/locate/python plugins/kadm5_hook/test diff --git a/src/krb5-config.in b/src/krb5-config.in deleted file mode 100755 index c950b36b5d..0000000000 --- a/src/krb5-config.in +++ /dev/null @@ -1,260 +0,0 @@ -#!/bin/sh - -# Copyright 2001, 2002, 2003 by the Massachusetts Institute of Technology. -# All Rights Reserved. -# -# Export of this software from the United States of America may -# require a specific license from the United States Government. -# It is the responsibility of any person or organization contemplating -# export to obtain such a license before exporting. -# -# WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -# distribute this software and its documentation for any purpose and -# without fee is hereby granted, provided that the above copyright -# notice appear in all copies and that both that copyright notice and -# this permission notice appear in supporting documentation, and that -# the name of M.I.T. not be used in advertising or publicity pertaining -# to distribution of the software without specific, written prior -# permission. Furthermore if you modify this software you must label -# your software as modified software and not distribute it in such a -# fashion that it might be confused with the original M.I.T. software. -# M.I.T. makes no representations about the suitability of -# this software for any purpose. It is provided "as is" without express -# or implied warranty. -# -# - -# Configurable parameters set by autoconf -version_string="Kerberos 5 release @KRB5_VERSION@" - -prefix=@prefix@ -exec_prefix=@exec_prefix@ -includedir=@includedir@ -libdir=@libdir@ -CC_LINK='@CC_LINK@' -KDB5_DB_LIB=@KDB5_DB_LIB@ -LDFLAGS='@LDFLAGS@' -RPATH_FLAG='@RPATH_FLAG@' -PROG_RPATH_FLAGS='@PROG_RPATH_FLAGS@' -PTHREAD_CFLAGS='@PTHREAD_CFLAGS@' -DL_LIB='@DL_LIB@' -DEFCCNAME='@DEFCCNAME@' -DEFKTNAME='@DEFKTNAME@' -DEFCKTNAME='@DEFCKTNAME@' - -LIBS='@LIBS@' -GEN_LIB=@GEN_LIB@ - -# Defaults for program -library=krb5 - -# Some constants -vendor_string="Massachusetts Institute of Technology" - -# Process arguments -# Yes, we are sloppy, library specifications can come before options -while test $# != 0; do - case $1 in - --all) - do_all=1 - ;; - --cflags) - do_cflags=1 - ;; - --defccname) - do_defccname=1 - ;; - --defcktname) - do_defcktname=1 - ;; - --defktname) - do_defktname=1 - ;; - --deps) - do_deps=1 - ;; - --exec-prefix) - do_exec_prefix=1 - ;; - --help) - do_help=1 - ;; - --libs) - do_libs=1 - ;; - --prefix) - do_prefix=1 - ;; - --vendor) - do_vendor=1 - ;; - --version) - do_version=1 - ;; - krb5) - library=krb5 - ;; - gssapi) - library=gssapi - ;; - kadm-client) - library=kadm_client - ;; - kadm-server) - library=kadm_server - ;; - kdb) - library=kdb - ;; - *) - echo "$0: Unknown option \`$1' -- use \`--help' for usage" - exit 1 - esac - shift -done - -# If required options - provide help -if test -z "$do_all" -a -z "$do_version" -a -z "$do_vendor" -a \ - -z "$do_prefix" -a -z "$do_vendor" -a -z "$do_exec_prefix" -a \ - -z "$do_defccname" -a -z "$do_defktname" -a -z "$do_defcktname" -a \ - -z "$do_cflags" -a -z "$do_libs"; then - do_help=1 -fi - - -if test -n "$do_help"; then - echo "Usage: $0 [OPTIONS] [LIBRARIES]" - echo "Options:" - echo " [--help] Help" - echo " [--all] Display version, vendor, and various values" - echo " [--version] Version information" - echo " [--vendor] Vendor information" - echo " [--prefix] Kerberos installed prefix" - echo " [--exec-prefix] Kerberos installed exec_prefix" - echo " [--defccname] Show built-in default ccache name" - echo " [--defktname] Show built-in default keytab name" - echo " [--defcktname] Show built-in default client keytab name" - echo " [--cflags] Compile time CFLAGS" - echo " [--libs] List libraries required to link [LIBRARIES]" - echo "Libraries:" - echo " krb5 Kerberos 5 application" - echo " gssapi GSSAPI application with Kerberos 5 bindings" - echo " kadm-client Kadmin client" - echo " kadm-server Kadmin server" - echo " kdb Application that accesses the kerberos database" - exit 0 -fi - -if test -n "$do_all"; then - all_exit= - do_version=1 - do_prefix=1 - do_exec_prefix=1 - do_vendor=1 - title_version="Version: " - title_prefix="Prefix: " - title_exec_prefix="Exec_prefix: " - title_vendor="Vendor: " -else - all_exit="exit 0" -fi - -if test -n "$do_version"; then - echo "$title_version$version_string" - $all_exit -fi - -if test -n "$do_vendor"; then - echo "$title_vendor$vendor_string" - $all_exit -fi - -if test -n "$do_prefix"; then - echo "$title_prefix$prefix" - $all_exit -fi - -if test -n "$do_exec_prefix"; then - echo "$title_exec_prefix$exec_prefix" - $all_exit -fi - -if test -n "$do_defccname"; then - echo "$DEFCCNAME" - $all_exit -fi - -if test -n "$do_defktname"; then - echo "$DEFKTNAME" - $all_exit -fi - -if test -n "$do_defcktname"; then - echo "$DEFCKTNAME" - $all_exit -fi - -if test -n "$do_cflags"; then - if test x"$includedir" != x"/usr/include" ; then - echo "-I${includedir}" - else - echo '' - fi -fi - - -if test -n "$do_libs"; then - # Assumes /usr/lib is the standard library directory everywhere... - if test "$libdir" = /usr/lib; then - libdirarg= - else - libdirarg="-L$libdir" - fi - # Ugly gross hack for our build tree - lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \ - -e 's/\$(PURE)//' \ - -e 's#\$(PROG_RPATH_FLAGS)#'"$PROG_RPATH_FLAGS"'#' \ - -e 's#\$(PROG_RPATH)#'$libdir'#' \ - -e 's#\$(PROG_LIBPATH)#'$libdirarg'#' \ - -e 's#\$(RPATH_FLAG)#'"$RPATH_FLAG"'#' \ - -e 's#\$(LDFLAGS)#'"$LDFLAGS"'#' \ - -e 's#\$(PTHREAD_CFLAGS)#'"$PTHREAD_CFLAGS"'#' \ - -e 's#\$(CFLAGS)##'` - - if test $library = 'kdb'; then - lib_flags="$lib_flags -lkdb5 $KDB5_DB_LIB" - library=krb5 - fi - - if test $library = 'kadm_server'; then - lib_flags="$lib_flags -lkadm5srv_mit -lkdb5 $KDB5_DB_LIB" - library=kadm_common - fi - - if test $library = 'kadm_client'; then - lib_flags="$lib_flags -lkadm5clnt_mit" - library=kadm_common - fi - - if test $library = 'kadm_common'; then - lib_flags="$lib_flags -lgssrpc" - library=gssapi - fi - - if test $library = 'gssapi'; then - lib_flags="$lib_flags -lgssapi_krb5" - library=krb5 - fi - - if test $library = 'krb5'; then - lib_flags="$lib_flags -lkrb5 -lk5crypto -lcom_err" - fi - - # If we ever support a flag to generate output suitable for static - # linking, we would output "-lkrb5support $GEN_LIB $LIBS $DL_LIB" - # here. - - echo $lib_flags -fi - -exit 0 diff --git a/src/t_krbconf b/src/t_krbconf deleted file mode 100644 index 9fe898cf23..0000000000 --- a/src/t_krbconf +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -# Copyright 2003 by the Massachusetts Institute of Technology. -# All Rights Reserved. -# -# Export of this software from the United States of America may -# require a specific license from the United States Government. -# It is the responsibility of any person or organization contemplating -# export to obtain such a license before exporting. -# -# WITHIN THAT CONSTRAINT, permission to use, copy, modify, and -# distribute this software and its documentation for any purpose and -# without fee is hereby granted, provided that the above copyright -# notice appear in all copies and that both that copyright notice and -# this permission notice appear in supporting documentation, and that -# the name of M.I.T. not be used in advertising or publicity pertaining -# to distribution of the software without specific, written prior -# permission. Furthermore if you modify this software you must label -# your software as modified software and not distribute it in such a -# fashion that it might be confused with the original M.I.T. software. -# M.I.T. makes no representations about the suitability of -# this software for any purpose. It is provided "as is" without express -# or implied warranty. - -echo "Testing if krb5-config outputs shell variables" -echo " Testing --libs argument" -if ./krb5-config --libs kdb | egrep -s '\$' > /dev/null; then - echo "Error './krb5-config --libs kdb' contains shell variables" - exit 1 -fi - -echo " Testing --cflags argument" -if ./krb5-config --cflags | egrep -s '\$' > /dev/null; then - echo "Error './krb5-config --cflags' contains shell variables" - exit 1 -fi -echo "krb5-config tests pass" -exit 0 -- cgit