Files
haiku-beta6/src/tools/jam/jambase.c
T
Ingo Weinhold 8485888933 This should be a bit nicer: Just maintain the grist of the supplied
target instead of using the one from the current subdir. Should make
no difference in practice but is more correct this way.

BTW, fixes should rather go into a fixes branch to keep them separate
from new/changed features that won't be included into Perforce jam.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-06-15 20:20:15 +00:00

1318 lines
30 KiB
C

/* Generated by mkjambase from Jambase */
const char *jambase[] = {
/* Jambase */
"JAMBASEDATE = 2002.05.09 ;\n",
"if $(NT)\n",
"{\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 $(BCCROOT)\n",
"{\n",
"AR ?= tlib /C /P64 ;\n",
"CC ?= bcc32 ;\n",
"CCFLAGS ?= -v -w- -q -DWIN -tWR -tWM -tWC ;\n",
"C++ ?= $(CC) ;\n",
"C++FLAGS ?= $(CCFLAGS) -P ;\n",
"LINK ?= $(CC) ;\n",
"LINKFLAGS ?= $(CCFLAGS) ;\n",
"STDLIBPATH ?= $(BCCROOT)\\\\lib ;\n",
"STDHDRS ?= $(BCCROOT)\\\\include ;\n",
"NOARSCAN ?= true ;\n",
"}\n",
"else if $(MSVC)\n",
"{\n",
"AR ?= lib /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",
"NOARSCAN ?= true ;\n",
"OPTIM ?= ;\n",
"STDHDRS ?= $(MSVC)\\\\include ;\n",
"UNDEFFLAG ?= \"/u _\" ;\n",
"}\n",
"else if $(MSVCNT) || $(MSVCDIR)\n",
"{\n",
"MSVCNT ?= $(MSVCDIR) ; \n",
"local I ; if $(OSPLAT) = IA64 { I = ia64\\\\ ; } else { I = \"\" ; }\n",
"AR ?= lib ;\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",
"}\n",
"else\n",
"{\n",
"EXIT On NT, set BCCROOT, MSVCDIR, MSVCNT, or MSVC to the root\n",
"of the Borland or Microsoft directories. ;\n",
"}\n",
"}\n",
"else if $(MINGW)\n",
"{\n",
"Echo \"MingW32\" ;\n",
"CC ?= gcc ;\n",
"C++ ?= g++ ;\n",
"CCFLAGS += -DMINGW ;\n",
"RANLIB ?= \"ranlib\" ;\n",
"SUFEXE ?= .exe ;\n",
"}\n",
"else if $(OS2)\n",
"{\n",
"WATCOM ?= $(watcom) ;\n",
"if ! $(WATCOM)\n",
"{\n",
"Exit On OS2, set WATCOM to the root of the Watcom directory. ;\n",
"}\n",
"AR ?= wlib ;\n",
"BINDIR ?= \\\\os2\\\\apps ;\n",
"CC ?= wcc386 ;\n",
"CCFLAGS ?= /zq /DOS2 /I$(WATCOM)\\\\h ; # zq=quiet\n",
"C++ ?= wpp386 ;\n",
"C++FLAGS ?= $(CCFLAGS) ;\n",
"CP ?= copy ;\n",
"DOT ?= . ;\n",
"DOTDOT ?= .. ;\n",
"LINK ?= wcl386 ;\n",
"LINKFLAGS ?= /zq ; # zq=quiet\n",
"LINKLIBS ?= ;\n",
"MV ?= move ;\n",
"NOARSCAN ?= true ;\n",
"OPTIM ?= ;\n",
"RM ?= del /f ;\n",
"SLASH ?= \\\\ ;\n",
"STDHDRS ?= $(WATCOM)\\\\h ;\n",
"SUFEXE ?= .exe ;\n",
"SUFLIB ?= .lib ;\n",
"SUFOBJ ?= .obj ;\n",
"UNDEFFLAG ?= \"/u _\" ;\n",
"}\n",
"else if $(VMS)\n",
"{\n",
"C++ ?= cxx ;\n",
"C++FLAGS ?= ;\n",
"CC ?= cc ;\n",
"CCFLAGS ?= ;\n",
"CHMOD ?= set file/prot= ;\n",
"CP ?= copy/replace ;\n",
"CRELIB ?= true ;\n",
"DOT ?= [] ;\n",
"DOTDOT ?= [-] ;\n",
"EXEMODE ?= (w:e) ;\n",
"FILEMODE ?= (w:r) ;\n",
"HDRS ?= ;\n",
"LINK ?= link ;\n",
"LINKFLAGS ?= \"\" ;\n",
"LINKLIBS ?= ;\n",
"MKDIR ?= create/dir ;\n",
"MV ?= rename ;\n",
"OPTIM ?= \"\" ;\n",
"RM ?= delete ;\n",
"RUNVMS ?= mcr ;\n",
"SHELLMODE ?= (w:er) ;\n",
"SLASH ?= . ;\n",
"STDHDRS ?= decc$library_include ;\n",
"SUFEXE ?= .exe ;\n",
"SUFLIB ?= .olb ;\n",
"SUFOBJ ?= .obj ;\n",
"switch $(OS) \n",
"{\n",
"case OPENVMS : CCFLAGS ?= /stand=vaxc ;\n",
"case VMS : LINKLIBS ?= sys$library:vaxcrtl.olb/lib ;\n",
"}\n",
"}\n",
"else if $(MAC)\n",
"{\n",
"local OPT ;\n",
"CW ?= \"{CW}\" ;\n",
"MACHDRS ?=\n",
"\"$(UMACHDRS):Universal:Interfaces:CIncludes\"\n",
"\"$(CW):MSL:MSL_C:MSL_Common:Include\"\n",
"\"$(CW):MSL:MSL_C:MSL_MacOS:Include\" ;\n",
"MACLIBS ?=\n",
"\"$(CW):MacOS Support:Universal:Libraries:StubLibraries:Interfacelib\"\n",
"\"$(CW):MacOS Support:Universal:Libraries:StubLibraries:Mathlib\" ;\n",
"MPWLIBS ?= \n",
"\"$(CW):MacOS Support:Libraries:Runtime:Libs:MSL_MPWCRuntime_PPC.lib\"\n",
"\"$(CW):MSL:MSL_C:MSL_MacOS:Lib:PPC:MSL_C_PPC_MPW.Lib\" ;\n",
"MPWNLLIBS ?= \n",
"\"$(CW):MacOS Support:Libraries:Runtime:Libs:MSL_MPWCRuntime_PPC.lib\"\n",
"\"$(CW):MSL:MSL_C:MSL_MacOS:Lib:PPC:MSL_C_PPC_MPW(NL).Lib\" ;\n",
"SIOUXHDRS ?= ;\n",
"SIOUXLIBS ?= \n",
"\"$(CW):MacOS Support:Libraries:Runtime:Libs:MSL_Runtime_PPC.lib\"\n",
"\"$(CW):MSL:MSL_C:MSL_MacOS:Lib:PPC:MSL_SIOUX_PPC.Lib\" \n",
"\"$(CW):MSL:MSL_C:MSL_MacOS:Lib:PPC:MSL_C_PPC.Lib\" ;\n",
"C++ ?= mwcppc ;\n",
"C++FLAGS ?= -w off ;\n",
"CC ?= mwcppc ;\n",
"CCFLAGS ?= -w off ;\n",
"CP ?= duplicate -y ;\n",
"DOT ?= \":\" ;\n",
"DOTDOT ?= \"::\" ;\n",
"HDRS ?= $(MACHDRS) $(MPWHDRS) ;\n",
"LINK ?= mwlinkppc ;\n",
"LINKFLAGS ?= -mpwtool -warn ; \n",
"LINKLIBS ?= $(MACLIBS) $(MPWLIBS) ; \n",
"MKDIR ?= newfolder ;\n",
"MV ?= rename -y ;\n",
"NOARSCAN ?= true ;\n",
"OPTIM ?= ;\n",
"RM ?= delete -y ;\n",
"SLASH ?= \":\" ;\n",
"STDHDRS ?= ; \n",
"SUFLIB ?= .lib ;\n",
"SUFOBJ ?= .o ;\n",
"}\n",
"else if $(OS) = BEOS && $(OSPLAT) = PPC\n",
"{\n",
"AR ?= mwld -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",
"NOARSCAN ?= true ;\n",
"RANLIB ?= ranlib ;\n",
"STDHDRS ?= /boot/develop/headers/posix ;\n",
"YACC ?= bison -y ;\n",
"YACCGEN ?= .c ;\n",
"YACCFILES ?= y.tab ;\n",
"YACCFLAGS ?= -d ;\n",
"}\n",
"else if $(OS) = BEOS \n",
"{\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",
"NOARSCAN ?= true ;\n",
"RANLIB ?= ranlib ;\n",
"STDHDRS ?= /boot/develop/headers/posix ;\n",
"YACC ?= bison -y ;\n",
"YACCGEN ?= .c ;\n",
"YACCFILES ?= y.tab ;\n",
"YACCFLAGS ?= -d ;\n",
"}\n",
"else if $(UNIX)\n",
"{\n",
"switch $(OS)\n",
"{\n",
"case AIX :\n",
"LINKLIBS ?= -lbsd ;\n",
"case AMIGA :\n",
"CC ?= gcc ;\n",
"YACC ?= bison -y ;\n",
"case CYGWIN : \n",
"CC ?= gcc ;\n",
"CCFLAGS += -D__cygwin__ ;\n",
"LEX ?= flex ;\n",
"JAMSHELL ?= sh -c ;\n",
"RANLIB ?= \"\" ;\n",
"SUFEXE ?= .exe ;\n",
"YACC ?= bison -y ;\n",
"case DGUX :\n",
"RANLIB ?= \"\" ;\n",
"RELOCATE ?= true ;\n",
"case HPUX :\n",
"RANLIB ?= \"\" ;\n",
"case INTERIX :\n",
"CC ?= gcc ;\n",
"JAMSHELL ?= sh -c ;\n",
"RANLIB ?= \"\" ;\n",
"case IRIX :\n",
"RANLIB ?= \"\" ;\n",
"case MPEIX :\n",
"CC ?= gcc ;\n",
"C++ ?= gcc ;\n",
"CCFLAGS += -D_POSIX_SOURCE ;\n",
"HDRS += /usr/include ;\n",
"RANLIB ?= \"\" ; \n",
"NOARSCAN ?= true ;\n",
"NOARUPDATE ?= true ;\n",
"case MVS :\n",
"RANLIB ?= \"\" ; \n",
"case NEXT :\n",
"AR ?= libtool -o ;\n",
"RANLIB ?= \"\" ;\n",
"case MACOSX :\n",
"C++ ?= c++ ;\n",
"MANDIR ?= /usr/local/share/man ;\n",
"case NCR :\n",
"RANLIB ?= \"\" ;\n",
"case PTX :\n",
"RANLIB ?= \"\" ;\n",
"case QNX :\n",
"AR ?= wlib ;\n",
"CC ?= cc ;\n",
"CCFLAGS ?= -Q ; # quiet\n",
"C++ ?= $(CC) ;\n",
"C++FLAGS ?= -Q ; # quiet\n",
"LINK ?= $(CC) ;\n",
"LINKFLAGS ?= -Q ; # quiet\n",
"NOARSCAN ?= true ;\n",
"RANLIB ?= \"\" ;\n",
"case SCO :\n",
"RANLIB ?= \"\" ;\n",
"RELOCATE ?= true ;\n",
"case SINIX :\n",
"RANLIB ?= \"\" ;\n",
"case SOLARIS :\n",
"RANLIB ?= \"\" ;\n",
"AR ?= \"/usr/ccs/bin/ar ru\" ;\n",
"case UNICOS :\n",
"NOARSCAN ?= true ;\n",
"OPTIM ?= -O0 ;\n",
"case UNIXWARE :\n",
"RANLIB ?= \"\" ;\n",
"RELOCATE ?= true ;\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 ?= -O ;\n",
"RANLIB ?= ranlib ;\n",
"YACC ?= yacc ;\n",
"YACCGEN ?= .c ;\n",
"YACCFILES ?= y.tab ;\n",
"YACCFLAGS ?= -d ;\n",
"}\n",
"AR ?= ar ru ;\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",
"CRELIB ?= ;\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",
"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",
"{\n",
"File $(i:D=$(<)) : $(i) ;\n",
"}\n",
"}\n",
"rule Cc\n",
"{\n",
"Depends $(<) : $(>) ;\n",
"if $(RELOCATE)\n",
"{\n",
"CcMv $(<) : $(>) ;\n",
"}\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",
"if $(RELOCATE)\n",
"{\n",
"CcMv $(<) : $(>) ;\n",
"}\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",
"{\n",
"local tt = $(i:G=$(INSTALLGRIST)) ;\n",
"Depends $(tt) : $(i) ;\n",
"Install $(tt) : $(i) ;\n",
"Chmod $(tt) ;\n",
"if $(OWNER) && $(CHOWN) \n",
"{ \n",
"Chown $(tt) ;\n",
"OWNER on $(tt) = $(OWNER) ;\n",
"}\n",
"if $(GROUP) && $(CHGRP) \n",
"{ \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",
"{\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",
"{\n",
"LocalDepends obj : $(_s) ;\n",
"}\n",
"else\n",
"{\n",
"LocalDepends lib : $(_l) ;\n",
"}\n",
"if ! $(_l:D)\n",
"{\n",
"MakeLocate $(_l) $(_l)($(_s:BS)) : $(LOCATE_TARGET) ;\n",
"}\n",
"if $(NOARSCAN) \n",
"{ \n",
"Depends $(_l) : $(_s) ;\n",
"}\n",
"else\n",
"{\n",
"Depends $(_l) : $(_l)($(_s:BS)) ;\n",
"for _i in $(_s)\n",
"{\n",
"Depends $(_l)($(_i:BS)) : $(_i) ;\n",
"}\n",
"}\n",
"LocalClean clean : $(_l) ;\n",
"if $(CRELIB) { CreLib $(_l) : $(_s[1]) ; }\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",
"{\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",
"{\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",
"{\n",
"$(<)-mkdir = true ;\n",
"LocalDepends dirs : $(<) ;\n",
"MkDir1 $(<) ;\n",
"local s = $(<:P) ;\n",
"if $(NT)\n",
"{\n",
"switch $(s)\n",
"{\n",
"case *: : s = ;\n",
"case *:\\\\ : s = ;\n",
"}\n",
"}\n",
"if $(s) = $(<)\n",
"{\n",
"NotFile $(s) ;\n",
"}\n",
"else if $(s:G=)\n",
"{\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",
"{\n",
"Exit SubDir syntax error ;\n",
"}\n",
"if ! $($(_top)-SET)\n",
"{\n",
"$(_top)-SET = true ;\n",
"local _originalTop = $($(_top)) ;\n",
"if $($(_top))\n",
"{\n",
"$(_top)-UP = ;\n",
"$(_top)-DOWN = ;\n",
"$(_top)-ROOT = $($(_top)) ;\n",
"}\n",
"else\n",
"{\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",
"{ \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",
"{\n",
"INVOCATION_SUBDIR_SET = true ;\n",
"INVOCATION_SUBDIR_TOP = $($(_top)) ;\n",
"INVOCATION_SUBDIR = $(_tokens) ;\n",
"if $(INVOCATION_SUBDIR)\n",
"{\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",
"{\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",
"{\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",
"{\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",
"{\n",
"return $(DOT) ;\n",
"} \n",
"else\n",
"{\n",
"local _i _d ;\n",
"_d = $(DOTDOT) ;\n",
"for _i in $(<[2-])\n",
"{\n",
"_d = $(_d:R=$(DOTDOT)) ;\n",
"}\n",
"return $(_d) ;\n",
"}\n",
"}\n",
"rule FStripCommon\n",
"{\n",
"if $($(<)[1]) && $($(<)[1]) = $($(>)[1])\n",
"{\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",
"{\n",
"local _i _o ;\n",
"for _i in $(<)\n",
"{\n",
"if $(_i:S)\n",
"{\n",
"_o += $(_i) ;\n",
"}\n",
"else\n",
"{\n",
"_o += $(_i:S=$(>)) ;\n",
"}\n",
"}\n",
"return $(_o) ;\n",
"}\n",
"else\n",
"{\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",
"{\n",
"_s = $(_i:R=$(_s)) ;\n",
"}\n",
"return $(_s) ;\n",
"}\n",
"if $(OS2)\n",
"{\n",
"rule FQuote { return \\\"$(<)\\\" ; }\n",
"rule FIncludes { return /I$(<) ; }\n",
"}\n",
"else if $(NT)\n",
"{\n",
"rule FDefines { return /D$(<) ; }\n",
"rule FIncludes { return /I$(<) ; }\n",
"}\n",
"else if $(MAC)\n",
"{\n",
"rule FQuote { return \\\"$(<)\\\" ; }\n",
"rule FDefines { return \"-define '$(<)'\" ; }\n",
"rule FIncludes { return \\\"$(<:J=,)\\\" ; }\n",
"}\n",
"else if $(VMS)\n",
"{\n",
"rule FQuote { return \\\"\\\"\\\"$(<)\\\"\\\"\\\" ; }\n",
"rule FDefines { return \"/define=( $(<:J=,) )\" ; }\n",
"rule FIncludes { return \"/inc=( $(<:J=,) )\" ; }\n",
"rule FDirName\n",
"{\n",
"local _s _i ;\n",
"if ! $(<)\n",
"{\n",
"_s = $(DOT) ;\n",
"}\n",
"else \n",
"{\n",
"switch $(<[1])\n",
"{\n",
"case *:* : _s = $(<[1]) ;\n",
"case \\\\[*\\\\] : _s = $(<[1]) ;\n",
"case * : _s = [.$(<[1])] ;\n",
"}\n",
"for _i in [.$(<[2-])]\n",
"{\n",
"_s = $(_i:R=$(_s)) ;\n",
"}\n",
"}\n",
"return $(_s) ;\n",
"}\n",
"}\n",
"actions updated together piecemeal Archive\n",
"{\n",
"$(AR) $(<) $(>)\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) $(<)\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 $(RELOCATE)\n",
"{\n",
"actions C++\n",
"{\n",
"$(C++) -c $(C++FLAGS) $(CCDEFS) $(CCHDRS) $(>)\n",
"}\n",
"actions Cc\n",
"{\n",
"$(CC) -c $(CCFLAGS) $(CCDEFS) $(CCHDRS) $(>)\n",
"}\n",
"actions ignore CcMv\n",
"{\n",
"[ $(<) != $(>:BS=$(SUFOBJ)) ] && $(MV) $(>:BS=$(SUFOBJ)) $(<)\n",
"}\n",
"}\n",
"if $(NOARUPDATE)\n",
"{\n",
"actions Archive\n",
"{\n",
"$(AR) $(<) $(>)\n",
"}\n",
"}\n",
"if $(UNIX)\n",
"{\n",
"actions GenFile1\n",
"{\n",
"PATH=\"$PATH:.\"\n",
"$(>[1]) $(<) $(>[2-])\n",
"}\n",
"}\n",
"if $(NT) && $(MSVCNT)\n",
"{\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",
"}\n",
"else if $(NT) && $(MSVC)\n",
"{\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",
"else if $(NT) && $(BCCROOT)\n",
"{\n",
"actions updated together piecemeal Archive\n",
"{\n",
"$(AR) $(<) -+$(>)\n",
"}\n",
"actions Link bind NEEDLIBS\n",
"{\n",
"$(LINK) -e$(<) $(LINKFLAGS) $(UNDEFS) -L$(LINKLIBS) $(NEEDLIBS) $(>)\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",
"}\n",
"else if $(OS2) && $(WATCOM)\n",
"{\n",
"actions together piecemeal Archive\n",
"{\n",
"$(AR) $(<) +-$(>) \n",
"}\n",
"actions Cc\n",
"{\n",
"$(CC) /Fo=$(<) $(CCFLAGS) $(CCDEFS) $(CCHDRS) $(>)\n",
"}\n",
"actions C++\n",
"{\n",
"$(C++) /Fo=$(<) $(C++FLAGS) $(CCDEFS) $(CCHDRS) $(>)\n",
"}\n",
"actions Link bind NEEDLIBS\n",
"{\n",
"$(LINK) $(LINKFLAGS) /Fe=$(<) $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS)\n",
"}\n",
"actions Shell\n",
"{\n",
"$(CP) $(>) $(<)\n",
"}\n",
"}\n",
"else if $(VMS)\n",
"{\n",
"actions updated together piecemeal Archive \n",
"{\n",
"lib/replace $(<) $(>[1]) ,$(>[2-])\n",
"}\n",
"actions Cc\n",
"{ \n",
"$(CC)/obj=$(<) $(CCFLAGS) $(CCDEFS) $(CCHDRS) $(>) \n",
"}\n",
"actions C++\n",
"{ \n",
"$(C++)/obj=$(<) $(C++FLAGS) $(CCDEFS) $(CCHDRS) $(>) \n",
"}\n",
"actions piecemeal together existing Clean\n",
"{\n",
"$(RM) $(>[1]);* ,$(>[2-]);*\n",
"}\n",
"actions together quietly CreLib\n",
"{\n",
"if f$search(\"$(<)\") .eqs. \"\" then lib/create $(<)\n",
"}\n",
"actions GenFile1\n",
"{\n",
"mcr $(>[1]) $(<) $(>[2-])\n",
"}\n",
"actions Link bind NEEDLIBS\n",
"{\n",
"$(LINK)/exe=$(<) $(LINKFLAGS) $(>:J=,) ,$(NEEDLIBS)/lib ,$(LINKLIBS)\n",
"}\n",
"actions quietly updated piecemeal together RmTemps\n",
"{\n",
"$(RM) $(>[1]);* ,$(>[2-]);*\n",
"}\n",
"actions Shell\n",
"{\n",
"$(CP) $(>) $(<)\n",
"}\n",
"}\n",
"else if $(MAC)\n",
"{\n",
"actions together Archive \n",
"{\n",
"$(LINK) -library -o $(<) $(>)\n",
"}\n",
"actions Cc\n",
"{\n",
"set -e MWCincludes $(CCHDRS)\n",
"$(CC) -o $(<) $(CCFLAGS) $(CCDEFS) $(>) \n",
"}\n",
"actions C++\n",
"{\n",
"set -e MWCincludes $(CCHDRS)\n",
"$(CC) -o $(<) $(C++FLAGS) $(CCDEFS) $(>) \n",
"}\n",
"actions Link bind NEEDLIBS\n",
"{\n",
"$(LINK) -o $(<) $(LINKFLAGS) $(>) $(NEEDLIBS) \"$(LINKLIBS)\"\n",
"}\n",
"}\n",
"if $(WIN98)\n",
"{\n",
"actions existing Clean\n",
"{\n",
"del $(>)\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 };