From 4c42504552b3975c638dd88e796689436699a4e2 Mon Sep 17 00:00:00 2001 From: kouril Date: Tue, 4 Nov 2003 16:39:36 +0000 Subject: [PATCH] - the spnegokrb5 lib is not used if only krb4 is specified - configure script adapted to work correctly with MIT krb4 headers --- Makefile.in | 12 +++++------ configure.in | 55 +++++++++++++++++++++++++++++++++----------------- spnegokrb5/Makefile.in | 9 ++++++++- 3 files changed, 49 insertions(+), 27 deletions(-) diff --git a/Makefile.in b/Makefile.in index f191007..77311a8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -4,17 +4,15 @@ KRB5_LDFLAGS = @KRB5_LDFLAGS@ KRB4_CPPFLAGS = @KRB4_CPPFLAGS@ KRB4_LDFLAGS = @KRB4_LDFLAGS@ LIB_resolv = @LIB_resolv@ +DO_KRB5 = @DO_KRB5@ CPPFLAGS = $(KRB5_CPPFLAGS) $(KRB4_CPPFLAGS) $(DEFS) -I. -LDFLAGS = -Lspnegokrb5 -lspnegokrb5 $(KRB5_LDFLAGS) $(LIB_resolv) - -ifdef SPNEGO_ONLY - TARGET = libspnegokrb5 -else - TARGET = modauthkerb +LDFLAGS = $(KRB5_LDFLAGS) $(LIB_resolv) +ifdef DO_KRB5 + LDFLAGS = -Lspnegokrb5 -lspnegokrb5 $(LDFLAGS) endif -all: $(TARGET) +all: modauthkerb libspnegokrb5: (cd spnegokrb5 && make) diff --git a/configure.in b/configure.in index 165ad8f..b2e0c93 100644 --- a/configure.in +++ b/configure.in @@ -16,8 +16,8 @@ AC_CHECK_LIB([resolv], [main], [LIB_resolv=-lresolv]) AC_SUBST(LIB_resolv) # Checks for header files. -#AC_HEADER_STDC -#AC_CHECK_HEADERS([limits.h netdb.h stddef.h stdlib.h string.h unistd.h]) +AC_HEADER_STDC +AC_CHECK_HEADERS([limits.h netdb.h stddef.h stdlib.h string.h unistd.h]) # Checks for typedefs, structures, and compiler characteristics. #AC_C_CONST @@ -35,6 +35,7 @@ AC_STRUCT_TM KRB5_CPPFLAGS="" KRB5_LDFLAGS="" krb5_config_command=krb5-config +DO_KRB5= AC_ARG_WITH(krb5, AC_HELP_STRING([--with-krb5=dir],[use krb5 in dir]), @@ -77,8 +78,13 @@ if test "x$with_krb5" != "xno" ; then CFLAGS=$ac_save_CFLAGS LDFLAGS=$ac_save_LDFLAGS LIBS=$ac_save_LIBS + AC_DEFINE(KRB5) + DO_KRB5=yes fi fi +AC_SUBST(KRB5_CPPFLAGS) +AC_SUBST(KRB5_LDFLAGS) +AC_SUBST(DO_KRB5) # # Kerberos4 enviroment @@ -117,41 +123,52 @@ if test "x$with_krb4" != "xno"; then AC_MSG_RESULT(yes) ac_save_CFLAGS=$CFLAGS + ac_save_CPPFLAGS=$CPPFLAGS ac_save_LDFLAGS=$LDFLAGS ac_save_LIBS=$LIBS CFLAGS="$CFLAGS $KRB4_CPPFLAGS" + CPPFLAGS="$CFLAGS $KRB4_CPPFLAGS" LDFLAGS="$LDFLAGS $KRB4_LDFLAGS" LIBS="$LIBS $LDFLAGS $LIB_resolv" - - AC_CHECK_LIB(krb4, krb_get_pw_in_tkt, [], [with_krb4=no]) + +# if not found krb.h suppose it's in the kerberosIV subdirectory + AC_CHECK_HEADER(krb.h, , with_krb4=no) if test "x$with_krb4" = "xno"; then - AC_CHECK_LIB(krb, krb_get_pw_in_tkt, [with_krb4=yes], - [with_krb4=no - KRB4_CPPFLAGS="" - KRB4_LDFLAGS=""]) + KRB4_CPPFLAGS="$KRB4_CPPFLAGS ${KRB4_CPPFLAGS}/kerberosIV" +# second run of AC_CHECK_HEADER for the same library returns the cached +# result created by previous run :-( + AC_CHECK_HEADER(kerberosIV/krb.h, with_krb4=yes, + [ with_krb4=no + KRB4_CPPFLAGS="" + KRB4_LDFLAGS=""]) + fi + + if test "x$with_krb4" != "xno"; then + AC_CHECK_LIB(krb4, krb_get_pw_in_tkt, [], [with_krb4=no]) + if test "x$with_krb4" = "xno"; then + AC_CHECK_LIB(krb, krb_get_pw_in_tkt, [with_krb4=yes], + [with_krb4=no + KRB4_CPPFLAGS="" + KRB4_LDFLAGS=""]) + fi fi CFLAGS=$ac_save_CFLAGS + CPPFLAGS=$ac_save_CPPFLAGS LDFLAGS=$ac_save_LDFLAGS LIBS=$ac_save_LIBS + + AC_DEFINE(KRB4) fi fi +AC_SUBST(KRB4_CPPFLAGS) +AC_SUBST(KRB4_LDFLAGS) + if test "x$with_krb5" = "xno" -a "x$with_krb4" = "xno"; then AC_MSG_ERROR([No Kerberos enviroment found]) fi -AC_SUBST(KRB5_CPPFLAGS) -AC_SUBST(KRB5_LDFLAGS) -AC_SUBST(KRB4_CPPFLAGS) -AC_SUBST(KRB4_LDFLAGS) -if test "x$with_krb5" != "xno"; then - AC_DEFINE(KRB5) -fi -if test "x$with_krb4" != "xno"; then - AC_DEFINE(KRB4) -fi - # # Apache enviroment # diff --git a/spnegokrb5/Makefile.in b/spnegokrb5/Makefile.in index 10568a0..5349f77 100644 --- a/spnegokrb5/Makefile.in +++ b/spnegokrb5/Makefile.in @@ -1,9 +1,16 @@ KRB5_CPPFLAGS = @KRB5_CPPFLAGS@ KRB5_LDFLAGS = @KRB5_LDFLAGS@ +DO_KRB5 = @DO_KRB5@ CPPFLAGS = -I. -I.. $(KRB5_CPPFLAGS) CFLAGS = -Wall -g +ifdef DO_KRB5 + TARGET=libspnegokrb5.a +else + TARGET= +endif + gen_files = \ asn1_MechType.c \ asn1_MechTypeList.c \ @@ -26,7 +33,7 @@ spnegokrb5_files = \ decapsulate.c \ external.c -all: libspnegokrb5.a +all: $(TARGET) libspnegokrb5.a: $(gen_files:.c=.o) $(asn1_files:.c=.o) $(spnegokrb5_files:.c=.o) ar -rscu libspnegokrb5.a $^ -- 2.1.4