diff --git a/source/extra_cflags.txt b/source/extra_cflags.txt index 6ecb170aa53..5faaff66b4c 100644 --- a/source/extra_cflags.txt +++ b/source/extra_cflags.txt @@ -1,2 +1,4 @@ heimdal -Iheimdal_build -Iheimdal/kdc -Iheimdal/lib/des -Iheimdal/lib/roken -Iheimdal/include -DNO_PRINTF_ATTRIBUTE +heimdal/lib/com_err -Iheimdal_build -Iheimdal/lib/com_err -Iheimdal/kdc -Iheimdal/lib/des -Iheimdal/lib/roken -Iheimdal/include -DNO_PRINTF_ATTRIBUTE +heimdal/lib/asn1 -Iheimdal_build -Iheimdal/lib/asn1 -Iheimdal/kdc -Iheimdal/lib/des -Iheimdal/lib/roken -Iheimdal/include -DNO_PRINTF_ATTRIBUTE heimdal_build/replace.o -Iheimdal_build -Iheimdal/lib/roken diff --git a/source/heimdal_build/build_external.sh b/source/heimdal_build/build_external.sh index c3a29595db9..ff9dc2ac2e4 100755 --- a/source/heimdal_build/build_external.sh +++ b/source/heimdal_build/build_external.sh @@ -3,15 +3,14 @@ # build generated asn1, et and flex files in heimdal/ tree # tridge@samba.org, June 2005 -CC=shift +CC="$1" +LEX="$2" +YACC="$3" + TOP=`pwd` ASN1_COMPILE=$TOP/bin/asn1_compile ET_COMPILE=$TOP/bin/compile_et -# we need to substitute these correctly based on configure output -FLEX=flex -BISON=bison - build_asn1() { f=$1 name=$2 @@ -41,31 +40,39 @@ build_lex() { dir=`dirname $f` file=`basename $f` base=`basename $f .l` + if [ -z "$LEX" ]; then + echo "lex not found" + return; + fi if [ -r $dir/$base.c ]; then if [ x`find $f -newer $dir/$base.c -print` != x$f ]; then return; - fi + fi fi echo Building $f - if cd $dir && $FLEX $file; then + if cd $dir && $LEX $file; then sed '/^#/ s|$base.yy\.c|$base.c|' $base.yy.c > $base.c rm -f $base.yy.c fi cd $TOP || exit 1 } -build_bison() { +build_yacc() { f=$1 dir=`dirname $f` file=`basename $f` base=`basename $f .y` + if [ -z "$YACC" ]; then + echo "yacc not found" + return; + fi if [ -r $dir/$base.c ]; then if [ x`find $f -newer $dir/$base.c -print` != x$f ]; then return; - fi + fi fi echo Building $f - if cd $dir && $BISON -y -d $file; then + if cd $dir && $YACC -d $file; then sed -e "/^#/!b" -e "s|y\.tab\.h|$base.h|" y.tab.h > $base.h sed '/^#/ s|y\.tab\.c|$base.c|' y.tab.c > $base.c rm -f y.tab.c y.tab.h @@ -88,8 +95,8 @@ build_cp heimdal/lib/roken/vis.hin build_cp heimdal/lib/roken/err.hin build_lex heimdal/lib/asn1/lex.l build_lex heimdal/lib/com_err/lex.l -build_bison heimdal/lib/com_err/parse.y -build_bison heimdal/lib/asn1/parse.y +build_yacc heimdal/lib/com_err/parse.y +build_yacc heimdal/lib/asn1/parse.y make bin/asn1_compile || exit 1 build_asn1 heimdal/lib/hdb/hdb.asn1 hdb_asn1 diff --git a/source/heimdal_build/config.m4 b/source/heimdal_build/config.m4 index 43688257830..90fb7a930d3 100644 --- a/source/heimdal_build/config.m4 +++ b/source/heimdal_build/config.m4 @@ -171,6 +171,9 @@ SMB_MODULE_DEFAULT(KERBEROS_LIB, NOT) SMB_BINARY_ENABLE(asn1_compile, NO) SMB_BINARY_ENABLE(compile_et, NO) +AC_PROG_LEX +AC_PROG_YACC + # to enable kerberos, unpack a heimdal source tree in the heimdal directory # of the samba source tree if test -d heimdal; then diff --git a/source/heimdal_build/config.mk b/source/heimdal_build/config.mk index 49da7f10d27..9b1ee96edf9 100644 --- a/source/heimdal_build/config.mk +++ b/source/heimdal_build/config.mk @@ -369,7 +369,7 @@ REQUIRED_SUBSYSTEMS = COMPILE_ET LIBREPLACE ####################### # Start TARGET HEIMDAL_EXTERNAL [TARGET::HEIMDAL_EXTERNAL] -CMD = heimdal_build/build_external.sh $(CC) +CMD = heimdal_build/build_external.sh "@CC@" "@LEX@" "@YACC@" REQUIRED_SUBSYSTEMS = ASN1_COMPILER # END TARGET HEIMDAL_EXTERNAL #######################