mirror of
https://review.haiku-os.org/buildtools
synced 2024-11-23 07:18:49 +01:00
72c791bc1f
Running "./jam0 install" installed jam in /boot/common/bin/ which is no longer used. Other directories also looked outdated so they are updated too. Test plan: 1. make 2. ./jam0 install Install /boot/system/non-packaged/bin/jam 3. which jam /boot/system/non-packaged/bin/jam Change-Id: I69c719eab0bd211f545c17337e3bc73bb1ab78fe Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4617 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
933 lines
22 KiB
C
933 lines
22 KiB
C
/* Generated by mkjambase from Jambase */
|
|
const char *jambase[] = {
|
|
/* Jambase */
|
|
"JAMBASEDATE = 2021.10.20 ;\n",
|
|
"if $(NT) {\n",
|
|
"MV ?= move /y ;\n",
|
|
"CP ?= copy ;\n",
|
|
"RM ?= del /f/q ;\n",
|
|
"RMDIR ?= rmdir /s/q ;\n",
|
|
"SLASH ?= \\\\ ;\n",
|
|
"SUFLIB ?= .lib ;\n",
|
|
"SUFOBJ ?= .obj ;\n",
|
|
"SUFEXE ?= .exe ;\n",
|
|
"if $(MSVC) {\n",
|
|
"AR ?= lib ;\n",
|
|
"ARFLAGS ?= /nologo ;\n",
|
|
"CC ?= cl /nologo ;\n",
|
|
"CCFLAGS ?= /D \\\"WIN\\\" ;\n",
|
|
"C++ ?= $(CC) ;\n",
|
|
"C++FLAGS ?= $(CCFLAGS) ;\n",
|
|
"LINK ?= $(CC) ;\n",
|
|
"LINKFLAGS ?= $(CCFLAGS) ;\n",
|
|
"LINKLIBS ?=\n",
|
|
"$(MSVC)\\\\lib\\\\mlibce.lib\n",
|
|
"$(MSVC)\\\\lib\\\\oldnames.lib\n",
|
|
";\n",
|
|
"LINKLIBS ?= ;\n",
|
|
"OPTIM ?= ;\n",
|
|
"STDHDRS ?= $(MSVC)\\\\include ;\n",
|
|
"UNDEFFLAG ?= \"/u _\" ;\n",
|
|
"} else if $(MSVCNT) || $(MSVCDIR) {\n",
|
|
"MSVCNT ?= $(MSVCDIR) ;\n",
|
|
"local I ; if $(OSPLAT) = IA64 { I = ia64\\\\ ; } else { I = \"\" ; }\n",
|
|
"AR ?= lib ;\n",
|
|
"ARFLAGS ?= ;\n",
|
|
"AS ?= masm386 ;\n",
|
|
"CC ?= cl /nologo ;\n",
|
|
"CCFLAGS ?= \"\" ;\n",
|
|
"C++ ?= $(CC) ;\n",
|
|
"C++FLAGS ?= $(CCFLAGS) ;\n",
|
|
"LINK ?= link /nologo ;\n",
|
|
"LINKFLAGS ?= \"\" ;\n",
|
|
"LINKLIBS ?=\n",
|
|
"$(MSVCNT)\\\\lib\\\\$(I)libc.lib\n",
|
|
"$(MSVCNT)\\\\lib\\\\$(I)oldnames.lib\n",
|
|
"$(MSVCNT)\\\\lib\\\\$(I)kernel32.lib ;\n",
|
|
"OPTIM ?= \"\" ;\n",
|
|
"STDHDRS ?= $(MSVCNT)\\\\include ;\n",
|
|
"UNDEFFLAG ?= \"/u _\" ;\n",
|
|
"} else {\n",
|
|
"EXIT On NT, set MSVCDIR, MSVCNT, or MSVC to the root\n",
|
|
"of the Borland or Microsoft directories. ;\n",
|
|
"}\n",
|
|
"} else if $(MINGW) {\n",
|
|
"CC ?= gcc ;\n",
|
|
"C++ ?= g++ ;\n",
|
|
"CCFLAGS += -DMINGW ;\n",
|
|
"RANLIB ?= \"ranlib\" ;\n",
|
|
"SUFEXE ?= .exe ;\n",
|
|
"} else if $(OS) = BEOS && $(OSPLAT) = PPC {\n",
|
|
"AR ?= mwld ;\n",
|
|
"ARFLAGS ?= -xml -o ;\n",
|
|
"BINDIR ?= /boot/home/config/bin ;\n",
|
|
"CC ?= mwcc ;\n",
|
|
"CCFLAGS ?= -nosyspath ;\n",
|
|
"C++ ?= $(CC) ;\n",
|
|
"C++FLAGS ?= -nosyspath ;\n",
|
|
"CHMOD ?= chmod ;\n",
|
|
"CHGRP ?= chgrp ;\n",
|
|
"CHOWN ?= chown ;\n",
|
|
"FORTRAN ?= \"\" ;\n",
|
|
"LEX ?= flex ;\n",
|
|
"LIBDIR ?= /boot/home/config/lib ;\n",
|
|
"LINK ?= mwld ;\n",
|
|
"LINKFLAGS ?= \"\" ;\n",
|
|
"MANDIR ?= /boot/home/config/man ;\n",
|
|
"RANLIB ?= ranlib ;\n",
|
|
"STDHDRS ?= /boot/develop/headers/posix ;\n",
|
|
"YACC ?= bison -y ;\n",
|
|
"YACCGEN ?= .c ;\n",
|
|
"YACCFILES ?= y.tab ;\n",
|
|
"YACCFLAGS ?= -d ;\n",
|
|
"} else if $(OS) = BEOS {\n",
|
|
"BINDIR ?= /boot/home/config/bin ;\n",
|
|
"CC ?= gcc ;\n",
|
|
"C++ ?= $(CC) ;\n",
|
|
"CHMOD ?= chmod ;\n",
|
|
"CHGRP ?= chgrp ;\n",
|
|
"CHOWN ?= chown ;\n",
|
|
"FORTRAN ?= \"\" ;\n",
|
|
"LEX ?= flex ;\n",
|
|
"LIBDIR ?= /boot/home/config/lib ;\n",
|
|
"LINK ?= gcc ;\n",
|
|
"MANDIR ?= /boot/home/config/man ;\n",
|
|
"RANLIB ?= ranlib ;\n",
|
|
"STDHDRS ?= /boot/develop/headers/posix ;\n",
|
|
"YACC ?= bison -y ;\n",
|
|
"YACCGEN ?= .c ;\n",
|
|
"YACCFILES ?= y.tab ;\n",
|
|
"YACCFLAGS ?= -d ;\n",
|
|
"} else if $(OS) = HAIKU {\n",
|
|
"BINDIR ?= /boot/system/non-packaged/bin ;\n",
|
|
"CC ?= gcc ;\n",
|
|
"C++ ?= $(CC) ;\n",
|
|
"CHMOD ?= chmod ;\n",
|
|
"CHGRP ?= chgrp ;\n",
|
|
"CHOWN ?= chown ;\n",
|
|
"FORTRAN ?= \"\" ;\n",
|
|
"LEX ?= flex ;\n",
|
|
"LIBDIR ?= /boot/system/non-packaged/lib ;\n",
|
|
"LINK ?= gcc ;\n",
|
|
"MANDIR ?= /boot/system/non-packaged/documentation/man ;\n",
|
|
"RANLIB ?= ranlib ;\n",
|
|
"STDHDRS ?= /boot/system/develop/headers/posix ;\n",
|
|
"YACC ?= bison -y ;\n",
|
|
"YACCGEN ?= .c ;\n",
|
|
"YACCFILES ?= y.tab ;\n",
|
|
"YACCFLAGS ?= -d ;\n",
|
|
"} else if $(UNIX) {\n",
|
|
"switch $(OS)\n",
|
|
"{\n",
|
|
"case CYGWIN :\n",
|
|
"CC ?= gcc ;\n",
|
|
"CCFLAGS += -D__cygwin__ ;\n",
|
|
"LEX ?= flex ;\n",
|
|
"JAMSHELL ?= sh -e -c ;\n",
|
|
"RANLIB ?= \"\" ;\n",
|
|
"SUFEXE ?= .exe ;\n",
|
|
"YACC ?= bison -y ;\n",
|
|
"case MACOSX :\n",
|
|
"C++ ?= c++ ;\n",
|
|
"MANDIR ?= /usr/local/share/man ;\n",
|
|
"case QNX :\n",
|
|
"AR ?= wlib ;\n",
|
|
"ARFLAGS ?= ;\n",
|
|
"CC ?= cc ;\n",
|
|
"CCFLAGS ?= -Q ; # quiet\n",
|
|
"C++ ?= $(CC) ;\n",
|
|
"C++FLAGS ?= -Q ; # quiet\n",
|
|
"LINK ?= $(CC) ;\n",
|
|
"LINKFLAGS ?= -Q ; # quiet\n",
|
|
"RANLIB ?= \"\" ;\n",
|
|
"}\n",
|
|
"CCFLAGS ?= ;\n",
|
|
"C++FLAGS ?= $(CCFLAGS) ;\n",
|
|
"CHMOD ?= chmod ;\n",
|
|
"CHGRP ?= chgrp ;\n",
|
|
"CHOWN ?= chown ;\n",
|
|
"LEX ?= lex ;\n",
|
|
"LINKFLAGS ?= $(CCFLAGS) ;\n",
|
|
"LINKLIBS ?= ;\n",
|
|
"OPTIM ?= ;\n",
|
|
"RANLIB ?= ranlib ;\n",
|
|
"YACC ?= yacc ;\n",
|
|
"YACCGEN ?= .c ;\n",
|
|
"YACCFILES ?= y.tab ;\n",
|
|
"YACCFLAGS ?= -d ;\n",
|
|
"}\n",
|
|
"AR ?= ar ;\n",
|
|
"ARFLAGS ?= r ;\n",
|
|
"AS ?= as ;\n",
|
|
"ASFLAGS ?= ;\n",
|
|
"AWK ?= awk ;\n",
|
|
"BINDIR ?= /usr/local/bin ;\n",
|
|
"C++ ?= cc ;\n",
|
|
"C++FLAGS ?= ;\n",
|
|
"CC ?= cc ;\n",
|
|
"CCFLAGS ?= ;\n",
|
|
"CP ?= cp -f ;\n",
|
|
"DOT ?= . ;\n",
|
|
"DOTDOT ?= .. ;\n",
|
|
"EXEMODE ?= 711 ;\n",
|
|
"FILEMODE ?= 644 ;\n",
|
|
"FORTRAN ?= f77 ;\n",
|
|
"FORTRANFLAGS ?= ;\n",
|
|
"HDRS ?= ;\n",
|
|
"INSTALLGRIST ?= installed ;\n",
|
|
"JAMFILE ?= Jamfile ;\n",
|
|
"JAMRULES ?= Jamrules ;\n",
|
|
"LEX ?= ;\n",
|
|
"LIBDIR ?= /usr/local/lib ;\n",
|
|
"LINK ?= $(CC) ;\n",
|
|
"LINKFLAGS ?= ;\n",
|
|
"LINKLIBS ?= ;\n",
|
|
"LN ?= ln ;\n",
|
|
"NOARSCAN ?= true ;\n",
|
|
"MANDIR ?= /usr/local/man ;\n",
|
|
"MKDIR ?= mkdir ;\n",
|
|
"MV ?= mv -f ;\n",
|
|
"OPTIM ?= ;\n",
|
|
"RCP ?= rcp ;\n",
|
|
"RM ?= rm -f ;\n",
|
|
"RMDIR ?= $(RM) ;\n",
|
|
"RSH ?= rsh ;\n",
|
|
"SED ?= sed ;\n",
|
|
"SHELLHEADER ?= \"#!/bin/sh\" ;\n",
|
|
"SHELLMODE ?= 755 ;\n",
|
|
"SLASH ?= / ;\n",
|
|
"STDHDRS ?= /usr/include ;\n",
|
|
"SUBDIRRULES ?= ;\n",
|
|
"SUBDIRRESET ?= ASFLAGS HDRS C++FLAGS CCFLAGS ;\n",
|
|
"SUFEXE ?= \"\" ;\n",
|
|
"SUFLIB ?= .a ;\n",
|
|
"SUFOBJ ?= .o ;\n",
|
|
"UNDEFFLAG ?= \"-u _\" ;\n",
|
|
"YACC ?= ;\n",
|
|
"YACCGEN ?= ;\n",
|
|
"YACCFILES ?= ;\n",
|
|
"YACCFLAGS ?= ;\n",
|
|
"HDRPATTERN =\n",
|
|
"\"^[ ]*#[ ]*include[ ]*[<\\\"]([^\\\">]*)[\\\">].*$\" ;\n",
|
|
"OSFULL = $(OS)$(OSVER)$(OSPLAT) $(OS)$(OSPLAT) $(OS)$(OSVER) $(OS) ;\n",
|
|
"Depends all : shell files lib exe obj ;\n",
|
|
"Depends all shell files lib exe obj : first ;\n",
|
|
"NotFile all first shell files lib exe obj dirs clean uninstall ;\n",
|
|
"Always clean uninstall ;\n",
|
|
"rule As\n",
|
|
"{\n",
|
|
"Depends $(<) : $(>) ;\n",
|
|
"ASFLAGS on $(<) += $(ASFLAGS) $(SUBDIRASFLAGS) ;\n",
|
|
"ASHDRS on $(<) = [ FIncludes $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS) ] ;\n",
|
|
"}\n",
|
|
"rule Bulk\n",
|
|
"{\n",
|
|
"local i ;\n",
|
|
"for i in $(>) {\n",
|
|
"File $(i:D=$(<)) : $(i) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule Cc\n",
|
|
"{\n",
|
|
"Depends $(<) : $(>) ;\n",
|
|
"CCFLAGS on $(<) += $(CCFLAGS) $(SUBDIRCCFLAGS) $(OPTIM) ;\n",
|
|
"CCHDRS on $(<) = [ on $(<) FIncludes $(HDRS) ] ;\n",
|
|
"CCDEFS on $(<) = [ on $(<) FDefines $(DEFINES) ] ;\n",
|
|
"}\n",
|
|
"rule C++\n",
|
|
"{\n",
|
|
"Depends $(<) : $(>) ;\n",
|
|
"C++FLAGS on $(<) += $(C++FLAGS) $(SUBDIRC++FLAGS) $(OPTIM) ;\n",
|
|
"CCHDRS on $(<) = [ on $(<) FIncludes $(HDRS) ] ;\n",
|
|
"CCDEFS on $(<) = [ on $(<) FDefines $(DEFINES) ] ;\n",
|
|
"}\n",
|
|
"rule Chmod\n",
|
|
"{\n",
|
|
"if $(CHMOD) { Chmod1 $(<) ; }\n",
|
|
"}\n",
|
|
"rule File\n",
|
|
"{\n",
|
|
"LocalDepends files : $(<) ;\n",
|
|
"Depends $(<) : $(>) ;\n",
|
|
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
|
|
"MODE on $(<) = $(FILEMODE) ;\n",
|
|
"Chmod $(<) ;\n",
|
|
"}\n",
|
|
"rule Fortran\n",
|
|
"{\n",
|
|
"Depends $(<) : $(>) ;\n",
|
|
"}\n",
|
|
"rule GenFile\n",
|
|
"{\n",
|
|
"local _t = [ FGristSourceFiles $(<) ] ;\n",
|
|
"local _s = [ FAppendSuffix $(>[1]) : $(SUFEXE) ] ;\n",
|
|
"Depends $(_t) : $(_s) $(>[2-]) ;\n",
|
|
"GenFile1 $(_t) : $(_s) $(>[2-]) ;\n",
|
|
"LocalClean clean : $(_t) ;\n",
|
|
"}\n",
|
|
"rule GenFile1\n",
|
|
"{\n",
|
|
"MakeLocate $(<) : $(LOCATE_SOURCE) ;\n",
|
|
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
|
|
"}\n",
|
|
"rule HardLink\n",
|
|
"{\n",
|
|
"LocalDepends files : $(<) ;\n",
|
|
"Depends $(<) : $(>) ;\n",
|
|
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
|
|
"}\n",
|
|
"rule HdrRule\n",
|
|
"{\n",
|
|
"local s = $(>:G=$(HDRGRIST:E)) ;\n",
|
|
"Includes $(<) : $(s) ;\n",
|
|
"SEARCH on $(s) = $(HDRSEARCH) ;\n",
|
|
"NoCare $(s) ;\n",
|
|
"HDRSEARCH on $(s) = $(HDRSEARCH) ;\n",
|
|
"HDRSCAN on $(s) = $(HDRSCAN) ;\n",
|
|
"HDRRULE on $(s) = $(HDRRULE) ;\n",
|
|
"HDRGRIST on $(s) = $(HDRGRIST) ;\n",
|
|
"}\n",
|
|
"rule InstallInto\n",
|
|
"{\n",
|
|
"local i t ;\n",
|
|
"t = $(>:G=$(INSTALLGRIST)) ;\n",
|
|
"LocalDepends install : $(t) ;\n",
|
|
"LocalClean uninstall : $(t) ;\n",
|
|
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
|
|
"MakeLocate $(t) : $(<) ;\n",
|
|
"for i in $(>) {\n",
|
|
"local tt = $(i:G=$(INSTALLGRIST)) ;\n",
|
|
"Depends $(tt) : $(i) ;\n",
|
|
"Install $(tt) : $(i) ;\n",
|
|
"Chmod $(tt) ;\n",
|
|
"if $(OWNER) && $(CHOWN) {\n",
|
|
"Chown $(tt) ;\n",
|
|
"OWNER on $(tt) = $(OWNER) ;\n",
|
|
"}\n",
|
|
"if $(GROUP) && $(CHGRP) {\n",
|
|
"Chgrp $(tt) ;\n",
|
|
"GROUP on $(tt) = $(GROUP) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule InstallBin\n",
|
|
"{\n",
|
|
"local _t = [ FAppendSuffix $(>) : $(SUFEXE) ] ;\n",
|
|
"InstallInto $(<) : $(_t) ;\n",
|
|
"MODE on $(_t:G=$(INSTALLGRIST)) = $(EXEMODE) ;\n",
|
|
"}\n",
|
|
"rule InstallFile\n",
|
|
"{\n",
|
|
"InstallInto $(<) : $(>) ;\n",
|
|
"MODE on $(>:G=$(INSTALLGRIST)) = $(FILEMODE) ;\n",
|
|
"}\n",
|
|
"rule InstallLib\n",
|
|
"{\n",
|
|
"InstallInto $(<) : $(>) ;\n",
|
|
"MODE on $(>:G=$(INSTALLGRIST)) = $(FILEMODE) ;\n",
|
|
"}\n",
|
|
"rule InstallMan\n",
|
|
"{\n",
|
|
"local i s d ;\n",
|
|
"for i in $(>) {\n",
|
|
"switch $(i:S)\n",
|
|
"{\n",
|
|
"case .1 : s = 1 ; case .2 : s = 2 ; case .3 : s = 3 ;\n",
|
|
"case .4 : s = 4 ; case .5 : s = 5 ; case .6 : s = 6 ;\n",
|
|
"case .7 : s = 7 ; case .8 : s = 8 ; case .l : s = l ;\n",
|
|
"case .n : s = n ; case .man : s = 1 ;\n",
|
|
"}\n",
|
|
"d = man$(s) ;\n",
|
|
"InstallInto $(d:R=$(<)) : $(i) ;\n",
|
|
"}\n",
|
|
"MODE on $(>:G=$(INSTALLGRIST)) = $(FILEMODE) ;\n",
|
|
"}\n",
|
|
"rule InstallShell\n",
|
|
"{\n",
|
|
"InstallInto $(<) : $(>) ;\n",
|
|
"MODE on $(>:G=$(INSTALLGRIST)) = $(SHELLMODE) ;\n",
|
|
"}\n",
|
|
"rule Lex\n",
|
|
"{\n",
|
|
"LexMv $(<) : $(>) ;\n",
|
|
"Depends $(<) : $(>) ;\n",
|
|
"MakeLocate $(<) : $(LOCATE_SOURCE) ;\n",
|
|
"LocalClean clean : $(<) ;\n",
|
|
"}\n",
|
|
"rule Library\n",
|
|
"{\n",
|
|
"LibraryFromObjects $(<) : $(>:S=$(SUFOBJ)) ;\n",
|
|
"Objects $(>) ;\n",
|
|
"}\n",
|
|
"rule LibraryFromObjects\n",
|
|
"{\n",
|
|
"local _i _l _s ;\n",
|
|
"_s = [ FGristFiles $(>) ] ;\n",
|
|
"_l = $(<:S=$(SUFLIB)) ;\n",
|
|
"if $(KEEPOBJS) {\n",
|
|
"LocalDepends obj : $(_s) ;\n",
|
|
"} else {\n",
|
|
"LocalDepends lib : $(_l) ;\n",
|
|
"}\n",
|
|
"if ! $(_l:D) {\n",
|
|
"MakeLocate $(_l) $(_l)($(_s:BS)) : $(LOCATE_TARGET) ;\n",
|
|
"}\n",
|
|
"if $(NOARSCAN) {\n",
|
|
"Depends $(_l) : $(_s) ;\n",
|
|
"} else {\n",
|
|
"Depends $(_l) : $(_l)($(_s:BS)) ;\n",
|
|
"for _i in $(_s) {\n",
|
|
"Depends $(_l)($(_i:BS)) : $(_i) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"LocalClean clean : $(_l) ;\n",
|
|
"Archive $(_l) : $(_s) ;\n",
|
|
"if $(RANLIB) { Ranlib $(_l) ; }\n",
|
|
"if ! ( $(NOARSCAN) || $(NOARUPDATE) ) { RmTemps $(_l) : $(_s) ; }\n",
|
|
"}\n",
|
|
"rule Link\n",
|
|
"{\n",
|
|
"MODE on $(<) = $(EXEMODE) ;\n",
|
|
"Chmod $(<) ;\n",
|
|
"}\n",
|
|
"rule LinkLibraries\n",
|
|
"{\n",
|
|
"local _t = [ FAppendSuffix $(<) : $(SUFEXE) ] ;\n",
|
|
"Depends $(_t) : $(>:S=$(SUFLIB)) ;\n",
|
|
"NEEDLIBS on $(_t) += $(>:S=$(SUFLIB)) ;\n",
|
|
"}\n",
|
|
"rule LocalClean\n",
|
|
"{\n",
|
|
"if [ FIsPrefix $(SUBDIR_UP) : $(SUBDIR_DOWN) ] {\n",
|
|
"Clean $(1) : $(2) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule LocalDepends\n",
|
|
"{\n",
|
|
"if [ FIsPrefix $(SUBDIR_UP) : $(SUBDIR_DOWN) ] {\n",
|
|
"Depends $(1) : $(2) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule Main\n",
|
|
"{\n",
|
|
"MainFromObjects $(<) : $(>:S=$(SUFOBJ)) ;\n",
|
|
"Objects $(>) ;\n",
|
|
"}\n",
|
|
"rule MainFromObjects\n",
|
|
"{\n",
|
|
"local _s _t ;\n",
|
|
"_s = [ FGristFiles $(>) ] ;\n",
|
|
"_t = [ FAppendSuffix $(<) : $(SUFEXE) ] ;\n",
|
|
"if $(_t) != $(<) {\n",
|
|
"Depends $(<) : $(_t) ;\n",
|
|
"NotFile $(<) ;\n",
|
|
"}\n",
|
|
"LocalDepends exe : $(_t) ;\n",
|
|
"Depends $(_t) : $(_s) ;\n",
|
|
"MakeLocate $(_t) : $(LOCATE_TARGET) ;\n",
|
|
"LocalClean clean : $(_t) ;\n",
|
|
"Link $(_t) : $(_s) ;\n",
|
|
"}\n",
|
|
"rule MakeLocate\n",
|
|
"{\n",
|
|
"if $(>) {\n",
|
|
"LOCATE on $(<) = $(>) ;\n",
|
|
"Depends $(<) : $(>[1]:G=dir) ;\n",
|
|
"MkDir $(>[1]:G=dir) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule MkDir\n",
|
|
"{\n",
|
|
"NoUpdate $(<) ;\n",
|
|
"if $(<:G=) != $(DOT) && ! $($(<)-mkdir) {\n",
|
|
"$(<)-mkdir = true ;\n",
|
|
"LocalDepends dirs : $(<) ;\n",
|
|
"MkDir1 $(<) ;\n",
|
|
"local s = $(<:P) ;\n",
|
|
"if $(NT) {\n",
|
|
"switch $(s) {\n",
|
|
"case *: : s = ;\n",
|
|
"case *:\\\\ : s = ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"if $(s) = $(<) {\n",
|
|
"NotFile $(s) ;\n",
|
|
"} else if $(s:G=) {\n",
|
|
"Depends $(<) : $(s) ;\n",
|
|
"MkDir $(s) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule Object\n",
|
|
"{\n",
|
|
"LocalClean clean : $(<) ;\n",
|
|
"MakeLocate $(<) : $(LOCATE_TARGET) ;\n",
|
|
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
|
|
"HDRS on $(<) = $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS) ;\n",
|
|
"HDRRULE on $(>) = HdrRule ;\n",
|
|
"HDRSCAN on $(>) = $(HDRPATTERN) ;\n",
|
|
"HDRSEARCH on $(>) =\n",
|
|
"$(SEARCH_SOURCE:E) $(SUBDIRHDRS) $(HDRS) $(STDHDRS) ;\n",
|
|
"HDRGRIST on $(>) = $(HDRGRIST) ;\n",
|
|
"DEFINES on $(<) += $(DEFINES) ;\n",
|
|
"switch $(>:S)\n",
|
|
"{\n",
|
|
"case .asm : As $(<) : $(>) ;\n",
|
|
"case .c : Cc $(<) : $(>) ;\n",
|
|
"case .C : C++ $(<) : $(>) ;\n",
|
|
"case .cc : C++ $(<) : $(>) ;\n",
|
|
"case .cpp : C++ $(<) : $(>) ;\n",
|
|
"case .f : Fortran $(<) : $(>) ;\n",
|
|
"case .l : Cc $(<) : $(<:S=.c) ;\n",
|
|
"Lex $(<:S=.c) : $(>) ;\n",
|
|
"case .s : As $(<) : $(>) ;\n",
|
|
"case .y : Cc $(<) : $(<:S=$(YACCGEN)) ;\n",
|
|
"Yacc $(<:S=$(YACCGEN)) : $(>) ;\n",
|
|
"case * : UserObject $(<) : $(>) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule ObjectCcFlags\n",
|
|
"{\n",
|
|
"CCFLAGS on [ FGristFiles $(<:S=$(SUFOBJ)) ] += $(>) ;\n",
|
|
"}\n",
|
|
"rule ObjectC++Flags\n",
|
|
"{\n",
|
|
"C++FLAGS on [ FGristFiles $(<:S=$(SUFOBJ)) ] += $(>) ;\n",
|
|
"}\n",
|
|
"rule ObjectDefines\n",
|
|
"{\n",
|
|
"local s = [ FGristFiles $(<:S=$(SUFOBJ)) ] ;\n",
|
|
"DEFINES on $(s) += $(>) ;\n",
|
|
"CCDEFS on $(s) = [ on $(s) FDefines $(DEFINES) ] ;\n",
|
|
"}\n",
|
|
"rule ObjectHdrs\n",
|
|
"{\n",
|
|
"local s = [ FGristFiles $(<:S=$(SUFOBJ)) ] ;\n",
|
|
"HDRS on $(s) += $(>) ;\n",
|
|
"CCHDRS on $(s) = [ on $(s) FIncludes $(HDRS) ] ;\n",
|
|
"}\n",
|
|
"rule Objects\n",
|
|
"{\n",
|
|
"local _i ;\n",
|
|
"for _i in [ FGristFiles $(<) ]\n",
|
|
"{\n",
|
|
"Object $(_i:S=$(SUFOBJ)) : $(_i) ;\n",
|
|
"LocalDepends obj : $(_i:S=$(SUFOBJ)) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule RmTemps\n",
|
|
"{\n",
|
|
"Temporary $(>) ;\n",
|
|
"}\n",
|
|
"rule Setuid\n",
|
|
"{\n",
|
|
"MODE on [ FAppendSuffix $(<) : $(SUFEXE) ] = 4711 ;\n",
|
|
"}\n",
|
|
"rule Shell\n",
|
|
"{\n",
|
|
"LocalDepends shell : $(<) ;\n",
|
|
"Depends $(<) : $(>) ;\n",
|
|
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
|
|
"MODE on $(<) = $(SHELLMODE) ;\n",
|
|
"LocalClean clean : $(<) ;\n",
|
|
"Chmod $(<) ;\n",
|
|
"}\n",
|
|
"rule SoftLink\n",
|
|
"{\n",
|
|
"LocalDepends files : $(<) ;\n",
|
|
"Depends $(<) : $(>) ;\n",
|
|
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
|
|
"LocalClean clean : $(<) ;\n",
|
|
"}\n",
|
|
"rule SubDir\n",
|
|
"{\n",
|
|
"local _top = $(<[1]) ;\n",
|
|
"local _tokens = $(<[2-]) ;\n",
|
|
"if ! $(_top) {\n",
|
|
"Exit SubDir syntax error ;\n",
|
|
"}\n",
|
|
"if ! $($(_top)-SET) {\n",
|
|
"$(_top)-SET = true ;\n",
|
|
"local _originalTop = $($(_top)) ;\n",
|
|
"if $($(_top)) {\n",
|
|
"$(_top)-UP = ;\n",
|
|
"$(_top)-DOWN = ;\n",
|
|
"$(_top)-ROOT = $($(_top)) ;\n",
|
|
"} else {\n",
|
|
"_tokens = [ FReverse $(_tokens) ] ;\n",
|
|
"SUBDIR_DOWN = [ FReverse $(SUBDIR_DOWN) ] ;\n",
|
|
"FStripCommon _tokens : SUBDIR_DOWN ;\n",
|
|
"SUBDIR_DOWN = [ FReverse $(SUBDIR_DOWN) ] ;\n",
|
|
"_tokens = [ FReverse $(_tokens) ] ;\n",
|
|
"if $(SUBDIR_DOWN) && $(_tokens) {\n",
|
|
"Echo Warning: SubDir $(<) misplaced! ;\n",
|
|
"}\n",
|
|
"$(_top)-UP = $(SUBDIR_UP) $(_tokens) ;\n",
|
|
"$(_top)-DOWN = $(SUBDIR_DOWN) ;\n",
|
|
"$(_top)-ROOT = $(SUBDIR_ROOT:E=\"\") ;\n",
|
|
"$(_top) = [ FSubDirPath $(_top) ] ;\n",
|
|
"}\n",
|
|
"SUBDIR_UP = $($(_top)-UP) ;\n",
|
|
"SUBDIR_DOWN = ;\n",
|
|
"SUBDIR_ROOT = $($(_top)-ROOT) ;\n",
|
|
"if ! $(INVOCATION_SUBDIR_SET) {\n",
|
|
"INVOCATION_SUBDIR_SET = true ;\n",
|
|
"INVOCATION_SUBDIR_TOP = $($(_top)) ;\n",
|
|
"INVOCATION_SUBDIR = $(_tokens) ;\n",
|
|
"if $(INVOCATION_SUBDIR) {\n",
|
|
"$(_top)-SET = ;\n",
|
|
"$(_top) = $(_originalTop) ;\n",
|
|
"include $(JAMFILE:D=$(INVOCATION_SUBDIR_TOP)) ;\n",
|
|
"jumptoeof ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"if $($(_top)RULES) {\n",
|
|
"include $($(_top)RULES) ;\n",
|
|
"} else {\n",
|
|
"NoCare $(JAMRULES:R=$($(_top)):G=$(_top)) ;\n",
|
|
"include $(JAMRULES:R=$($(_top)):G=$(_top)) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"SUBDIR_UP = $($(_top)-UP) ;\n",
|
|
"SUBDIR_DOWN = $($(_top)-DOWN) $(_tokens) ;\n",
|
|
"SUBDIR_ROOT = $($(_top)-ROOT) ;\n",
|
|
"SUBDIR_TOKENS = $(SUBDIR_DOWN) ;\n",
|
|
"SUBDIR = [ FSubDirPath $(<) ] ;\n",
|
|
"SEARCH_SOURCE = $(SUBDIR) ;\n",
|
|
"LOCATE_SOURCE = $(ALL_LOCATE_TARGET) $(SUBDIR) ;\n",
|
|
"LOCATE_TARGET = $(ALL_LOCATE_TARGET) $(SUBDIR) ;\n",
|
|
"SOURCE_GRIST = [ FGrist $(SUBDIR_TOKENS) ] ;\n",
|
|
"HDRGRIST = $(SOURCE_GRIST) ;\n",
|
|
"SUBDIR$(SUBDIRRESET) = ;\n",
|
|
"$(SUBDIRRULES) $(<) ;\n",
|
|
"}\n",
|
|
"rule FSubDirPath\n",
|
|
"{\n",
|
|
"local _r = [ FRelPath $($(<[1])-UP) : $($(<[1])-DOWN) $(<[2-]) ] ;\n",
|
|
"return $(_r:R=$($(<[1])-ROOT)) ;\n",
|
|
"}\n",
|
|
"rule SubDirCcFlags\n",
|
|
"{\n",
|
|
"SUBDIRCCFLAGS += $(<) ;\n",
|
|
"}\n",
|
|
"rule SubDirC++Flags\n",
|
|
"{\n",
|
|
"SUBDIRC++FLAGS += $(<) ;\n",
|
|
"}\n",
|
|
"rule SubDirHdrs\n",
|
|
"{\n",
|
|
"SUBDIRHDRS += [ FDirName $(<) ] ;\n",
|
|
"}\n",
|
|
"rule SubInclude\n",
|
|
"{\n",
|
|
"if ! $($(<[1])) {\n",
|
|
"Exit SubInclude $(<[1]) without prior SubDir $(<[1]) ;\n",
|
|
"}\n",
|
|
"SubDir $(<) ;\n",
|
|
"include $(JAMFILE:D=$(SUBDIR)) ;\n",
|
|
"}\n",
|
|
"rule SubRules\n",
|
|
"{\n",
|
|
"if ! $($(<[1])) {\n",
|
|
"Exit SubRules $(<[1]) without prior SubDir $(<[1]) ;\n",
|
|
"}\n",
|
|
"SubDir $(<) ;\n",
|
|
"SubDir $(>) ;\n",
|
|
"}\n",
|
|
"rule Undefines\n",
|
|
"{\n",
|
|
"UNDEFS on [ FAppendSuffix $(<) : $(SUFEXE) ] += $(UNDEFFLAG)$(>) ;\n",
|
|
"}\n",
|
|
"rule UserObject\n",
|
|
"{\n",
|
|
"Exit \"Unknown suffix on\" $(>) \"- see UserObject rule in Jamfile(5).\" ;\n",
|
|
"}\n",
|
|
"rule Yacc\n",
|
|
"{\n",
|
|
"local _h ;\n",
|
|
"_h = $(<:S=.h) ;\n",
|
|
"MakeLocate $(<) $(_h) : $(LOCATE_SOURCE) ;\n",
|
|
"if $(YACC) {\n",
|
|
"Depends $(<) $(_h) : $(>) ;\n",
|
|
"Yacc1 $(<) $(_h) : $(>) ;\n",
|
|
"YaccMv $(<) $(_h) : $(>) ;\n",
|
|
"LocalClean clean : $(<) $(_h) ;\n",
|
|
"}\n",
|
|
"Includes $(<) : $(_h) ;\n",
|
|
"}\n",
|
|
"rule FGrist\n",
|
|
"{\n",
|
|
"return $(<:J=!) ;\n",
|
|
"}\n",
|
|
"rule FGristFiles\n",
|
|
"{\n",
|
|
"return $(<:G=$(SOURCE_GRIST:E)) ;\n",
|
|
"}\n",
|
|
"rule FGristSourceFiles\n",
|
|
"{\n",
|
|
"return [ FGristFiles $(<) ] ;\n",
|
|
"}\n",
|
|
"rule FIsPrefix\n",
|
|
"{\n",
|
|
"local a = $(1) ;\n",
|
|
"local b = $(2) ;\n",
|
|
"while $(a) && $(a[1]) = $(b[1]) {\n",
|
|
"a = $(a[2-]) ;\n",
|
|
"b = $(b[2-]) ;\n",
|
|
"}\n",
|
|
"if $(a) {\n",
|
|
"return ;\n",
|
|
"} else {\n",
|
|
"return true ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule FReverse\n",
|
|
"{\n",
|
|
"if $(1) { return [ FReverse $(1[2-]) ] $(1[1]) ; }\n",
|
|
"}\n",
|
|
"rule FSubDir\n",
|
|
"{\n",
|
|
"if ! $(<[1]) {\n",
|
|
"return $(DOT) ;\n",
|
|
"} else {\n",
|
|
"local _i _d ;\n",
|
|
"_d = $(DOTDOT) ;\n",
|
|
"for _i in $(<[2-]) {\n",
|
|
"_d = $(_d:R=$(DOTDOT)) ;\n",
|
|
"}\n",
|
|
"return $(_d) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule FStripCommon\n",
|
|
"{\n",
|
|
"if $($(<)[1]) && $($(<)[1]) = $($(>)[1]) {\n",
|
|
"$(<) = $($(<)[2-]) ;\n",
|
|
"$(>) = $($(>)[2-]) ;\n",
|
|
"FStripCommon $(<) : $(>) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule FRelPath\n",
|
|
"{\n",
|
|
"local _l _r ;\n",
|
|
"_l = $(<) ;\n",
|
|
"_r = $(>) ;\n",
|
|
"FStripCommon _l : _r ;\n",
|
|
"_l = [ FSubDir $(_l) ] ;\n",
|
|
"_r = [ FDirName $(_r) ] ;\n",
|
|
"if $(_r) = $(DOT) {\n",
|
|
"return $(_l) ;\n",
|
|
"} else {\n",
|
|
"return $(_r:R=$(_l)) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule FAppendSuffix\n",
|
|
"{\n",
|
|
"if $(>) {\n",
|
|
"local _i _o ;\n",
|
|
"for _i in $(<) {\n",
|
|
"if $(_i:S) {\n",
|
|
"_o += $(_i) ;\n",
|
|
"} else {\n",
|
|
"_o += $(_i:S=$(>)) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"return $(_o) ;\n",
|
|
"} else {\n",
|
|
"return $(<) ;\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule FQuote { return \\\\\\\"$(<)\\\\\\\" ; }\n",
|
|
"rule FDefines { return -D$(<) ; }\n",
|
|
"rule FIncludes { return -I$(<) ; }\n",
|
|
"rule FDirName\n",
|
|
"{\n",
|
|
"local _i ;\n",
|
|
"local _s = $(DOT) ;\n",
|
|
"for _i in $(<) {\n",
|
|
"_s = $(_i:R=$(_s)) ;\n",
|
|
"}\n",
|
|
"return $(_s) ;\n",
|
|
"}\n",
|
|
"if $(NT) {\n",
|
|
"rule FDefines { return /D$(<) ; }\n",
|
|
"rule FIncludes { return /I$(<) ; }\n",
|
|
"}\n",
|
|
"actions updated together piecemeal Archive\n",
|
|
"{\n",
|
|
"$(AR) $(ARFLAGS) $(<) $(>)\n",
|
|
"}\n",
|
|
"actions As\n",
|
|
"{\n",
|
|
"$(AS) $(ASFLAGS) $(ASHDRS) -o $(<) $(>)\n",
|
|
"}\n",
|
|
"actions C++\n",
|
|
"{\n",
|
|
"$(C++) -c -o $(<) $(C++FLAGS) $(CCDEFS) $(CCHDRS) $(>)\n",
|
|
"}\n",
|
|
"actions Cc\n",
|
|
"{\n",
|
|
"$(CC) -c -o $(<) $(CCFLAGS) $(CCDEFS) $(CCHDRS) $(>)\n",
|
|
"}\n",
|
|
"actions Chgrp\n",
|
|
"{\n",
|
|
"$(CHGRP) $(GROUP) $(<)\n",
|
|
"}\n",
|
|
"actions Chmod1\n",
|
|
"{\n",
|
|
"$(CHMOD) \"$(MODE)\" \"$(1)\"\n",
|
|
"}\n",
|
|
"actions Chown\n",
|
|
"{\n",
|
|
"$(CHOWN) $(OWNER) $(<)\n",
|
|
"}\n",
|
|
"actions piecemeal together existing Clean\n",
|
|
"{\n",
|
|
"$(RM) \"$(>)\"\n",
|
|
"}\n",
|
|
"actions File\n",
|
|
"{\n",
|
|
"$(CP) \"$(>)\" \"$(<)\"\n",
|
|
"}\n",
|
|
"actions GenFile1\n",
|
|
"{\n",
|
|
"$(>[1]) $(<) $(>[2-])\n",
|
|
"}\n",
|
|
"actions Fortran\n",
|
|
"{\n",
|
|
"$(FORTRAN) $(FORTRANFLAGS) -o $(<) $(>)\n",
|
|
"}\n",
|
|
"actions HardLink\n",
|
|
"{\n",
|
|
"$(RM) $(<) && $(LN) $(>) $(<)\n",
|
|
"}\n",
|
|
"actions Install\n",
|
|
"{\n",
|
|
"$(CP) $(>) $(<)\n",
|
|
"}\n",
|
|
"actions Lex\n",
|
|
"{\n",
|
|
"$(LEX) $(>)\n",
|
|
"}\n",
|
|
"actions LexMv\n",
|
|
"{\n",
|
|
"$(MV) lex.yy.c $(<)\n",
|
|
"}\n",
|
|
"actions Link bind NEEDLIBS\n",
|
|
"{\n",
|
|
"$(LINK) $(LINKFLAGS) -o $(<) $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS)\n",
|
|
"}\n",
|
|
"actions MkDir1\n",
|
|
"{\n",
|
|
"$(MKDIR) \"$(<)\"\n",
|
|
"}\n",
|
|
"actions together Ranlib\n",
|
|
"{\n",
|
|
"$(RANLIB) $(<)\n",
|
|
"}\n",
|
|
"actions quietly updated piecemeal together RmTemps\n",
|
|
"{\n",
|
|
"$(RM) $(>)\n",
|
|
"}\n",
|
|
"actions Shell\n",
|
|
"{\n",
|
|
"$(AWK) '\n",
|
|
"NR == 1 { print \"$(SHELLHEADER)\" }\n",
|
|
"NR == 1 && /^[#:]/ { next }\n",
|
|
"/^##/ { next }\n",
|
|
"{ print }\n",
|
|
"' < $(>) > $(<)\n",
|
|
"}\n",
|
|
"actions SoftLink\n",
|
|
"{\n",
|
|
"$(RM) $(<) && $(LN) -s $(>) $(<)\n",
|
|
"}\n",
|
|
"actions Yacc1\n",
|
|
"{\n",
|
|
"$(YACC) $(YACCFLAGS) $(>)\n",
|
|
"}\n",
|
|
"actions YaccMv\n",
|
|
"{\n",
|
|
"$(MV) $(YACCFILES).c $(<[1])\n",
|
|
"$(MV) $(YACCFILES).h $(<[2])\n",
|
|
"}\n",
|
|
"if $(NOARUPDATE)\n",
|
|
"{\n",
|
|
"actions Archive\n",
|
|
"{\n",
|
|
"$(AR) $(<) $(>)\n",
|
|
"}\n",
|
|
"}\n",
|
|
"if $(UNIX) {\n",
|
|
"actions GenFile1\n",
|
|
"{\n",
|
|
"PATH=\"$PATH:.\"\n",
|
|
"$(>[1]) $(<) $(>[2-])\n",
|
|
"}\n",
|
|
"}\n",
|
|
"if $(NT) && $(MSVCNT) {\n",
|
|
"actions updated together piecemeal Archive\n",
|
|
"{\n",
|
|
"if exist $(<) set _$(<:B)_=$(<)\n",
|
|
"$(AR) /out:$(<) %_$(<:B)_% $(>)\n",
|
|
"}\n",
|
|
"actions As\n",
|
|
"{\n",
|
|
"$(AS) /Ml /p /v /w2 $(>) $(<) ,nul,nul;\n",
|
|
"}\n",
|
|
"actions Cc\n",
|
|
"{\n",
|
|
"$(CC) /c /Fo$(<) $(CCFLAGS) $(CCDEFS) $(CCHDRS) /I$(STDHDRS) $(>)\n",
|
|
"}\n",
|
|
"actions C++\n",
|
|
"{\n",
|
|
"$(C++) /c /Fo$(<) $(C++FLAGS) $(CCDEFS) $(CCHDRS) /I$(STDHDRS) /Tp$(>)\n",
|
|
"}\n",
|
|
"actions Link bind NEEDLIBS\n",
|
|
"{\n",
|
|
"$(LINK) $(LINKFLAGS) /out:$(<) $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS)\n",
|
|
"}\n",
|
|
"} else if $(NT) && $(MSVC) {\n",
|
|
"actions updated together piecemeal Archive\n",
|
|
"{\n",
|
|
"$(AR) $(<) -+$(>)\n",
|
|
"}\n",
|
|
"actions Cc\n",
|
|
"{\n",
|
|
"$(CC) /c /Fo$(<) $(CCFLAGS) $(CCDEFS) $(CCHDRS) $(>)\n",
|
|
"}\n",
|
|
"actions C++\n",
|
|
"{\n",
|
|
"$(C++) /c /Fo$(<) $(C++FLAGS) $(CCDEFS) $(CCHDRS) /Tp$(>)\n",
|
|
"}\n",
|
|
"actions Link bind NEEDLIBS\n",
|
|
"{\n",
|
|
"$(LINK) $(LINKFLAGS) /out:$(<) $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS)\n",
|
|
"}\n",
|
|
"}\n",
|
|
"rule BULK { Bulk $(<) : $(>) ; }\n",
|
|
"rule FILE { File $(<) : $(>) ; }\n",
|
|
"rule HDRRULE { HdrRule $(<) : $(>) ; }\n",
|
|
"rule INSTALL { Install $(<) : $(>) ; }\n",
|
|
"rule LIBRARY { Library $(<) : $(>) ; }\n",
|
|
"rule LIBS { LinkLibraries $(<) : $(>) ; }\n",
|
|
"rule LINK { Link $(<) : $(>) ; }\n",
|
|
"rule MAIN { Main $(<) : $(>) ; }\n",
|
|
"rule SETUID { Setuid $(<) ; }\n",
|
|
"rule SHELL { Shell $(<) : $(>) ; }\n",
|
|
"rule UNDEFINES { Undefines $(<) : $(>) ; }\n",
|
|
"rule INSTALLBIN { InstallBin $(BINDIR) : $(<) ; }\n",
|
|
"rule INSTALLLIB { InstallLib $(LIBDIR) : $(<) ; }\n",
|
|
"rule INSTALLMAN { InstallMan $(MANDIR) : $(<) ; }\n",
|
|
"rule addDirName { $(<) += [ FDirName $(>) ] ; }\n",
|
|
"rule makeCommon { FStripCommon $(<) : $(>) ; }\n",
|
|
"rule _makeCommon { FStripCommon $(<) : $(>) ; }\n",
|
|
"rule makeDirName { $(<) = [ FDirName $(>) ] ; }\n",
|
|
"rule makeGrist { $(<) = [ FGrist $(>) ] ; }\n",
|
|
"rule makeGristedName { $(<) = [ FGristSourceFiles $(>) ] ; }\n",
|
|
"rule makeRelPath { $(<[1]) = [ FRelPath $(<[2-]) : $(>) ] ; }\n",
|
|
"rule makeString { $(<) = $(>:J) ; }\n",
|
|
"rule makeSubDir { $(<) = [ FSubDir $(>) ] ; }\n",
|
|
"rule makeSuffixed { $(<[1]) = [ FAppendSuffix $(>) : $(<[2]) ] ; }\n",
|
|
"include $(JAMFILE) ;\n",
|
|
0 };
|