From 670a7a8de570a9c89ea09bb473d9b1d8cabf6830 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 2 Aug 2005 23:15:56 +0000 Subject: [PATCH] r8955: Move a bit more of the build process to the Makefile --- source/build/smb_build/makefile.pm | 38 +++++++++++++- source/heimdal_build/build_external.sh | 70 +------------------------- source/heimdal_build/config.mk | 2 +- 3 files changed, 39 insertions(+), 71 deletions(-) diff --git a/source/build/smb_build/makefile.pm b/source/build/smb_build/makefile.pm index d5dbfa1751d..1ccdb3239db 100644 --- a/source/build/smb_build/makefile.pm +++ b/source/build/smb_build/makefile.pm @@ -96,6 +96,9 @@ SHLD_FLAGS=@LDSHFLAGS@ @LDFLAGS@ -Lbin XSLTPROC=@XSLTPROC@ +LEX=@LEX@ +YACC=@YACC@ + __EOD__ } @@ -119,7 +122,7 @@ sub _prepare_SUFFIXES($) $output = << '__EOD__'; .SUFFIXES: -.SUFFIXES: .c .d .o .h .h.gch .a .so .1 .1.xml .3 .3.xml .5 .5.xml .7 .7.xml +.SUFFIXES: .c .et .y .l .d .o .h .h.gch .a .so .1 .1.xml .3 .3.xml .5 .5.xml .7 .7.xml __EOD__ @@ -220,6 +223,36 @@ dynconfig.o: dynconfig.c Makefile __EOD__ } +sub _prepare_et_rule() +{ + return << '__EOD__'; + +.et.c: + $(MAKE) bin/compile_et + ./bin/compile_et $< + mv `basename $@` $@ + +__EOD__ +} + +sub _prepare_yacc_rule() +{ + return << '__EOD__'; +.y.c: + $(YACC) -d -o $@ $< + +__EOD__ +} + +sub _prepare_lex_rule() +{ + return << '__EOD__'; +.l.c: + $(LEX) -o $@ $< + +__EOD__ +} + sub _prepare_depend_CC_rule() { return << '__EOD__'; @@ -869,6 +902,9 @@ sub _prepare_makefile_in($) $output .= _prepare_dummy_MAKEDIR(); $output .= _prepare_std_CC_rule("c","o",'@PICFLAG@',"Compiling","Rule for std objectfiles"); $output .= _prepare_std_CC_rule("h","h.gch",'@PICFLAG@',"Precompiling","Rule for precompiled headerfiles"); + $output .= _prepare_lex_rule(); + $output .= _prepare_yacc_rule(); + $output .= _prepare_et_rule(); $output .= _prepare_depend_CC_rule(); diff --git a/source/heimdal_build/build_external.sh b/source/heimdal_build/build_external.sh index ff9dc2ac2e4..9d80625a38d 100755 --- a/source/heimdal_build/build_external.sh +++ b/source/heimdal_build/build_external.sh @@ -1,15 +1,12 @@ #!/bin/sh ##################### -# build generated asn1, et and flex files in heimdal/ tree +# build generated asn1 files in heimdal/ tree # tridge@samba.org, June 2005 CC="$1" -LEX="$2" -YACC="$3" TOP=`pwd` ASN1_COMPILE=$TOP/bin/asn1_compile -ET_COMPILE=$TOP/bin/compile_et build_asn1() { f=$1 @@ -26,60 +23,6 @@ build_asn1() { cd $TOP || exit 1 } -build_et() { - f=$1 - dir=`dirname $f` - file=`basename $f` - echo Building $f - cd $dir && $ET_COMPILE $file || exit 1 - cd $TOP || exit 1 -} - -build_lex() { - f=$1 - 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 - echo Building $f - 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_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 - echo Building $f - 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 - fi - cd $TOP || exit 1 -} - build_cp() { f=$1 dir=`dirname $f` @@ -93,19 +36,8 @@ build_cp() { 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_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 build_asn1 heimdal/lib/gssapi/spnego.asn1 spnego_asn1 build_asn1 heimdal/lib/asn1/k5.asn1 krb5_asn1 - -make bin/compile_et || exit 1 -build_et heimdal/lib/hdb/hdb_err.et -build_et heimdal/lib/krb5/krb5_err.et -build_et heimdal/lib/krb5/heim_err.et -build_et heimdal/lib/krb5/k524_err.et -build_et heimdal/lib/asn1/asn1_err.et diff --git a/source/heimdal_build/config.mk b/source/heimdal_build/config.mk index 2b961701b2d..d2a29626f6c 100644 --- a/source/heimdal_build/config.mk +++ b/source/heimdal_build/config.mk @@ -384,7 +384,7 @@ REQUIRED_SUBSYSTEMS = COMPILE_ET LIBREPLACE ####################### # Start TARGET HEIMDAL_EXTERNAL [TARGET::HEIMDAL_EXTERNAL] -CMD = heimdal_build/build_external.sh "@HOSTCC@" "@LEX@" "@YACC@" +CMD = heimdal_build/build_external.sh "@HOSTCC@" REQUIRED_SUBSYSTEMS = ASN1_COMPILER # END TARGET HEIMDAL_EXTERNAL ####################### -- 2.34.1