summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2005-08-02 23:15:56 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:31:00 -0500
commit7fe83f23b8184975c6179b6ea54db912972adf5f (patch)
tree99924bfe0b0cd60a80927fbe2b83aabc28566858
parent798fbb45e3eadbfdd5f17396a331c33ba6010d03 (diff)
downloadsamba-7fe83f23b8184975c6179b6ea54db912972adf5f.tar.gz
samba-7fe83f23b8184975c6179b6ea54db912972adf5f.tar.bz2
samba-7fe83f23b8184975c6179b6ea54db912972adf5f.zip
r8955: Move a bit more of the build process to the Makefile
(This used to be commit 670a7a8de570a9c89ea09bb473d9b1d8cabf6830)
-rw-r--r--source4/build/smb_build/makefile.pm38
-rwxr-xr-xsource4/heimdal_build/build_external.sh70
-rw-r--r--source4/heimdal_build/config.mk2
3 files changed, 39 insertions, 71 deletions
diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm
index d5dbfa1751..1ccdb3239d 100644
--- a/source4/build/smb_build/makefile.pm
+++ b/source4/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/source4/heimdal_build/build_external.sh b/source4/heimdal_build/build_external.sh
index ff9dc2ac2e..9d80625a38 100755
--- a/source4/heimdal_build/build_external.sh
+++ b/source4/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/source4/heimdal_build/config.mk b/source4/heimdal_build/config.mk
index 2b961701b2..d2a29626f6 100644
--- a/source4/heimdal_build/config.mk
+++ b/source4/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
#######################