From 020be68a267e4148c0df3483f81c4cc97d84bcc1 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 15 Jun 2004 22:13:59 +0000 Subject: [PATCH] Fixed bash build. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7998 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/bin/bash/Jamfile | 21 ++++++-- src/apps/bin/bash/builtins/Jamfile | 83 +++++++++++++++--------------- 2 files changed, 58 insertions(+), 46 deletions(-) diff --git a/src/apps/bin/bash/Jamfile b/src/apps/bin/bash/Jamfile index eed4bcae5a..9a132624be 100644 --- a/src/apps/bin/bash/Jamfile +++ b/src/apps/bin/bash/Jamfile @@ -2,6 +2,10 @@ SubDir OBOS_TOP src apps bin bash ; SubDirCcFlags -DHAVE_CONFIG_H -DPROGRAM='\"sh\"' -DCONF_HOSTTYPE='\"i586\"' -DCONF_OSTYPE='\"beos\"' -DCONF_MACHTYPE='\"i586-pc-beos\"' -DCONF_VENDOR='\"pc\"' -DSHELL ; +# filter warnings we don't want here +local originalCCFlags = $(CCFLAGS) ; +CCFLAGS = [ Filter $(CCFLAGS) : -Wall -Wmissing-prototypes -Wsign-compare ] ; + SubDirHdrs [ FDirName $(SUBDIR) include ] ; SubDirHdrs [ FDirName $(SUBDIR) lib ] ; @@ -13,7 +17,7 @@ BinCommand mksignames : SEARCH on [ FGristFiles mksignames.c ] = [ FDirName $(SUBDIR) support ] ; -MakeLocate mksyntax mksignames : $(LOCATE_TARGET) ; +MakeLocate mksyntax mksignames : [ FObjectsDir ] ; rule MkSyntaxExt { @@ -30,14 +34,14 @@ actions MkSyntaxExt1 $(2) -o $(1) ; } -MkSyntaxExt syntax.c ; +MkSyntaxExt [ FGristFiles syntax.c ] ; rule MkSignamesExt { SetupObjectsDir ; MakeLocate $(<) : $(LOCATE_TARGET) ; - Depends $(<) : mksyntax ; + Depends $(<) : mksignames ; MkSignamesExt1 $(<) : mksignames ; LocalClean clean : $(<) ; } @@ -47,7 +51,7 @@ actions MkSignamesExt1 $(2) $(1) ; } -MkSignamesExt signames.h ; +MkSignamesExt signames.h ; BinCommand sh : parse.y shell.c eval.c general.c make_cmd.c print_cmd.c @@ -61,5 +65,14 @@ BinCommand sh : : libreadline.a libglob.a libbuiltins.a libtilde.a libsh.a libtermcap.a : bash.rdef ; +# trap.c includes signames.h +Includes [ FGristFiles trap.c ] : signames.h ; + +# some sources include the generated builtext.h +Includes [ FGristFiles execute_cmd.c nojobs.c parse.c ] : builtext.h ; + SubInclude OBOS_TOP src apps bin bash lib ; SubInclude OBOS_TOP src apps bin bash builtins ; + +# restore CCFLAGS +CCFLAGS = $(originalCCFlags) ; diff --git a/src/apps/bin/bash/builtins/Jamfile b/src/apps/bin/bash/builtins/Jamfile index b059e4af37..7eb53ff412 100644 --- a/src/apps/bin/bash/builtins/Jamfile +++ b/src/apps/bin/bash/builtins/Jamfile @@ -10,28 +10,17 @@ BinCommand mkbuiltins : mkbuiltins.c ; MakeLocate mkbuiltins : $(LOCATE_TARGET) ; -rule UserObject -{ - switch $(2) - { - case *.S : assemble $(1) : $(2) ; - case *.o : return ; - case *.def : { - Depends $(<) : builtext.h ; - Cc $(<) : $(<:S=.c) ; - MkBuiltinsComp $(<:S=.c) : $(>) ; - } - case * : ECHO "unknown suffix on" $(2) ; - } -} - rule MkBuiltinsComp { - MakeLocate $(<) : $(LOCATE_SOURCE) ; + local source = $(1) ; + local defFile = $(2) ; - Depends $(<) : $(>) mkbuiltins ; - MkBuiltinsComp1 $(<) : mkbuiltins $(>) ; - LocalClean clean : $(<) ; + SEARCH on $(defFile) = $(SEARCH_SOURCE) ; + MakeLocate $(source) : $(LOCATE_SOURCE) ; + + Depends $(source) : $(defFile) mkbuiltins ; + MkBuiltinsComp1 $(source) : mkbuiltins $(defFile) ; + LocalClean clean : $(source) ; } actions MkBuiltinsComp1 @@ -41,12 +30,15 @@ actions MkBuiltinsComp1 rule MkBuiltinsExt { - MakeLocate $(<) : $(LOCATE_SOURCE) ; - SEARCH on $(>) = $(SEARCH_SOURCE) ; + local sources = $(1) ; + local defFiles = [ FGristFiles $(2) ] ; + + MakeLocate $(sources) : $(LOCATE_SOURCE) ; + SEARCH on $(defFiles) = $(SEARCH_SOURCE) ; - Depends $(<) : $(>) mkbuiltins ; - MkBuiltinsExt1 $(<) : mkbuiltins $(>) ; - LocalClean clean : $(<) ; + Depends $(sources) : $(defFiles) mkbuiltins ; + MkBuiltinsExt1 $(sources) : mkbuiltins $(defFiles) ; + LocalClean clean : $(sources) ; } actions MkBuiltinsExt1 @@ -54,25 +46,32 @@ actions MkBuiltinsExt1 $(2[1]) -externfile $(1[1]) -structfile $(1[2]) -noproduction $(2[2-]) ; } -MkBuiltinsExt builtext.h builtins.c : - alias.def bind.def - break.def builtin.def cd.def colon.def command.def - declare.def echo.def enable.def eval.def exec.def - exit.def fc.def fg_bg.def hash.def help.def history.def jobs.def kill.def let.def - pushd.def read.def return.def set.def setattr.def shift.def source.def - suspend.def test.def times.def trap.def type.def ulimit.def umask.def - wait.def getopts.def shopt.def printf.def complete.def +local bashDefFiles = + alias.def bind.def break.def builtin.def cd.def colon.def command.def + declare.def echo.def enable.def eval.def exec.def exit.def fc.def fg_bg.def + hash.def help.def history.def jobs.def kill.def let.def pushd.def read.def + return.def set.def setattr.def shift.def source.def suspend.def test.def + times.def trap.def type.def ulimit.def umask.def wait.def getopts.def + shopt.def printf.def complete.def ; -StaticLibrary builtins : - alias.def bind.def - break.def builtin.def cd.def colon.def command.def - common.c declare.def echo.def enable.def eval.def evalfile.c - evalstring.c exec.def - exit.def fc.def fg_bg.def hash.def help.def history.def jobs.def kill.def let.def - pushd.def read.def return.def set.def setattr.def shift.def source.def - suspend.def test.def times.def trap.def type.def ulimit.def umask.def - wait.def getopts.def shopt.def printf.def getopt.c bashgetopt.c complete.def - builtins.c +# generate the source file for the .def files +local bashDefFile ; +for bashDefFile in [ FGristFiles $(bashDefFiles) ] { + local source = $(bashDefFile:S=.c) ; + Includes $(cFile) : builtext.h ; + Depends $(cFile:S=$(SUFOBJ)) : builtext.h ; + MkBuiltinsComp $(source) : $(bashDefFile) ; +} + +# generate builtext.h and builtins.c +MkBuiltinsExt builtext.h [ FGristFiles builtins.c ] : $(bashDefFiles) ; + +# generate the builtins library +StaticLibrary builtins + : common.c evalfile.c evalstring.c getopt.c bashgetopt.c builtins.c + [ FGristFiles $(bashDefFiles:S=.c) ] ; +# common.c includes builtext.h +Includes [ FGristFiles common.c ] : builtext.h ;