1SubDir HAIKU_TOP src bin bash ; 2 3SetSubDirSupportedPlatformsBeOSCompatible ; 4 5# split the canonical target string 6local cpuName = [ Match "([^-]*)-.*" : $(HAIKU_GCC_MACHINE) ] ; 7local vendorName = [ Match "[^-]*-([^-]*)" : $(HAIKU_GCC_MACHINE) ] ; 8local osName = [ Match "[^-]*-[^-]*-([^-]*)" : $(HAIKU_GCC_MACHINE) ] ; 9 10SubDirCcFlags -DHAVE_CONFIG_H -DPROGRAM='\"bash\"' -DSHELL -DLOCALEDIR='\"/boot/common/share/locale\"' -DPACKAGE='\"bash\"' ; 11SubDirCcFlags -DCONF_MACHTYPE='\"$(HAIKU_GCC_MACHINE)\"' ; 12SubDirCcFlags -DCONF_HOSTTYPE='\"$(cpuName)\"' ; 13SubDirCcFlags -DCONF_VENDOR='\"$(vendorName)\"' ; 14#SubDirCcFlags -DCONF_OSTYPE='\"$(osName)\"' ; 15SubDirCcFlags -DCONF_OSTYPE='\"beos\"' ; 16 17# filter warnings we don't want here 18TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) 19 : -Wall -Wmissing-prototypes -Wsign-compare ] ; 20 21SubDirSysHdrs [ FDirName $(SUBDIR) include ] ; 22SubDirSysHdrs [ FDirName $(SUBDIR) lib ] ; 23SubDirSysHdrs $(SUBDIR) ; 24 25BuildPlatformMain mksyntax : 26 mksyntax.c ; 27 28BuildPlatformMain mksignames : 29 mksignames.c signames.c ; 30 31SEARCH on [ FGristFiles mksignames.c signames.c ] = [ FDirName $(SUBDIR) support ] ; 32 33rule MkSyntaxExt 34{ 35 MakeLocateArch $(<) ; 36 Depends $(<) : mksyntax ; 37 MkSyntaxExt1 $(<) : mksyntax ; 38 LocalClean clean : $(<) ; 39} 40 41actions MkSyntaxExt1 42{ 43 $(2) -o $(1) ; 44} 45 46MkSyntaxExt [ FGristFiles syntax.c ] ; 47 48rule MkSignamesExt 49{ 50 MakeLocateArch $(<) ; 51 Depends $(<) : mksignames ; 52 MkSignamesExt1 $(<) : mksignames ; 53 LocalClean clean : $(<) ; 54} 55 56actions MkSignamesExt1 57{ 58 $(2) $(1) ; 59} 60 61local signamesHeader = <bash>signames.h ; 62if $(TARGET_PLATFORM) = haiku { 63 MakeLocateArch $(signamesHeader) ; 64 File $(signamesHeader) : [ FGristFiles signames_haiku.h ] ; 65} else { 66 MkSignamesExt $(signamesHeader) ; 67} 68 69# Haiku supports job control, BeOS doesn't. 70local jobControlSources ; 71if $(TARGET_PLATFORM_HAIKU_COMPATIBLE) { 72 jobControlSources = jobs.c ; 73} else { 74 jobControlSources = nojobs.c ; 75} 76 77BinCommand bash : 78 assoc.c 79 parse.y shell.c eval.c general.c make_cmd.c print_cmd.c 80 dispose_cmd.c execute_cmd.c variables.c version.c 81 expr.c copy_cmd.c flags.c subst.c hashcmd.c hashlib.c mailcheck.c 82 trap.c alias.c braces.c 83 input.c bashhist.c array.c arrayfunc.c pathexp.c 84 unwind_prot.c bashline.c bracecomp.c error.c 85 list.c stringlib.c locale.c findcmd.c redir.c 86 pcomplete.c pcomplib.c syntax.c xmalloc.c test.c sig.c 87 88 $(jobControlSources) 89 90 : libreadline.a <bash>libglob.a libbuiltins.a libtilde.a libsh.a 91 libtermcap.a $(TARGET_SELECT_UNAME_ETC_LIB) 92 : bash.rdef ; 93 94# trap.c includes signames.h 95Includes [ FGristFiles trap.c ] : <bash>signames.h ; 96 97# some sources include the generated builtext.h 98Includes [ FGristFiles execute_cmd.c nojobs.c jobs.c parse.c subst.c trap.c 99 parse.y ] 100 : <bash>builtext.h ; 101 102# y.tab.h includes parse.h 103Includes [ FGristFiles y.tab.h ] : [ FGristFiles parse.h ] ; 104 105SubInclude HAIKU_TOP src bin bash lib ; 106SubInclude HAIKU_TOP src bin bash builtins ; 107