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 ] ;

BinCommand mksyntax : 
	mksyntax.c ;

BinCommand mksignames : 
	mksignames.c ;

SEARCH on [ FGristFiles mksignames.c ] = [ FDirName $(SUBDIR) support ] ;

MakeLocate mksyntax mksignames : [ FCurrentObjectsDir ] ;

rule MkSyntaxExt
{
	SetupObjectsDir ;

	MakeLocate $(<) : $(LOCATE_TARGET) ;
	Depends $(<) : mksyntax ;
	MkSyntaxExt1 $(<) : mksyntax ;
	LocalClean clean : $(<) ;
}

actions MkSyntaxExt1
{
	$(2) -o $(1) ;
}

MkSyntaxExt [ FGristFiles syntax.c ] ;

rule MkSignamesExt
{
	SetupObjectsDir ;

	MakeLocate $(<) : $(LOCATE_TARGET) ;
	Depends $(<) : mksignames ;
	MkSignamesExt1 $(<) : mksignames ;
	LocalClean clean : $(<) ;
}

actions MkSignamesExt1
{
	$(2) $(1) ;
}

MkSignamesExt <bash>signames.h ;

BinCommand sh :
	parse.y shell.c eval.c general.c make_cmd.c print_cmd.c
	dispose_cmd.c execute_cmd.c variables.c version.c
	expr.c copy_cmd.c flags.c subst.c hashcmd.c hashlib.c mailcheck.c
	trap.c alias.c nojobs.c braces.c
	input.c bashhist.c array.c arrayfunc.c pathexp.c
	unwind_prot.c bashline.c bracecomp.c error.c
	list.c stringlib.c locale.c findcmd.c redir.c
	pcomplete.c pcomplib.c syntax.c xmalloc.c test.c sig.c
	: libreadline.a <bash>libglob.a libbuiltins.a libtilde.a libsh.a
	  libtermcap.a $(SELECT_UNAME_ETC_LIB)
	: bash.rdef ;

# trap.c includes signames.h
Includes [ FGristFiles trap.c ] : <bash>signames.h ;

# some sources include the generated builtext.h
Includes [ FGristFiles execute_cmd.c nojobs.c parse.c ] : <bash>builtext.h ;

SubInclude OBOS_TOP src apps bin bash lib ;
SubInclude OBOS_TOP src apps bin bash builtins ;

# restore CCFLAGS
CCFLAGS = $(originalCCFlags) ;
