/* Generated by mkjambase from Jambase */ const char *jambase[] = { /* Jambase */ "JAMBASEDATE = 2011.01.17 ;\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 $(MSVCDir)\n", "{\n", "MSVCDIR ?= $(MSVCDir) ;\n", "}\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:J=\" \")\\\\lib\\\\mlibce.lib\n", "$(MSVC:J=\" \")\\\\lib\\\\oldnames.lib\n", ";\n", "LINKLIBS ?= ;\n", "NOARSCAN ?= true ;\n", "OPTIM ?= ;\n", "STDHDRS ?= $(MSVC:J=\" \")\\\\include ;\n", "UNDEFFLAG ?= \"/u _\" ;\n", "}\n", "else if $(MSVCNT) && $(OSPLAT) = IA64\n", "{\n", "AR ?= lib /MACHINE:IA64 ;\n", "AS ?= ias ;\n", "CC ?= cl /nologo ;\n", "CCFLAGS ?= -D_M_IA64 -DNT /wd4996 ;\n", "C++ ?= $(CC) ;\n", "C++FLAGS ?= $(CCFLAGS) ;\n", "LINK ?= link /nologo ;\n", "LINKFLAGS ?= /MACHINE:IA64 ;\n", "LINKLIBS ?= libcmt.lib kernel32.lib bufferoverflowU.lib ;\n", "OPTIM ?= \"\" ;\n", "STDHDRS ?= $(MSVCNT:J=\" \")\\\\include ;\n", "UNDEFFLAG ?= \"/u _\" ;\n", "}\n", "else if $(MSVCNT) && $(OSPLAT) = X64\n", "{\n", "AR ?= lib /MACHINE:X64 ;\n", "AS ?= masm386 ;\n", "CC ?= cl /nologo ;\n", "CCFLAGS ?= /favor:blend -D_M_AMD64 -DNT -D_CRT_SECURE_NO_DEPRECATE /wd4996 ;\n", "C++ ?= $(CC) ;\n", "C++FLAGS ?= $(CCFLAGS) ;\n", "LINK ?= link /nologo ;\n", "LINKFLAGS ?= /MACHINE:X64 ;\n", "LINKLIBS ?= libcmt.lib oldnames.lib kernel32.lib ;\n", "OPTIM ?= \"\" ;\n", "STDHDRS ?= $(MSVCNT:J=\" \")\\\\include ;\n", "UNDEFFLAG ?= \"/u _\" ;\n", "}\n", "else if $(MSVCDIR) && $(OSPLAT) = X86\n", "{\n", "MSVCNT ?= $(MSVCDIR) ; \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 ?= libc.lib oldnames.lib kernel32.lib ;\n", "OPTIM ?= \"\" ;\n", "STDHDRS ?= $(MSVCNT:J=\" \")\\\\include ;\n", "UNDEFFLAG ?= \"/u _\" ;\n", "}\n", "else if $(MSVCNT) && $(OSPLAT) = X86\n", "{\n", "AR ?= lib /MACHINE:X86 ;\n", "AS ?= masm386 ;\n", "CC ?= cl /nologo ;\n", "CCFLAGS ?= -DNT -D_CRT_SECURE_NO_DEPRECATE /wd4996 ;\n", "C++ ?= $(CC) ;\n", "C++FLAGS ?= $(CCFLAGS) ;\n", "LINK ?= link /nologo ;\n", "LINKFLAGS ?= /MACHINE:X86 ;\n", "LINKLIBS ?= libcmt.lib oldnames.lib kernel32.lib ;\n", "OPTIM ?= \"\" ;\n", "STDHDRS ?= $(MSVCNT:J=\" \")\\\\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", "CC ?= gcc ;\n", "C++ ?= g++ ;\n", "LINK ?= gcc ;\n", "CCFLAGS += -DMINGW ;\n", "RANLIB ?= ranlib ;\n", "MV ?= move /y ;\n", "CP ?= copy ;\n", "RM ?= del /f/q ;\n", "RMDIR ?= rmdir /s/q ;\n", "SLASH ?= \\\\ ;\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 $(AS400)\n", "{\n", "C++ ?= icc ;\n", "C++FLAGS ?= -DAS400 ;\n", "CC ?= icc ;\n", "CCFLAGS ?= -DAS400 ;\n", "LINK ?= icc ;\n", "LINKFLAGS ?= -qDUPPROC ;\n", "NOARSCAN ?= true ;\n", "AR ?= qar -cru ;\n", "RM ?= del ;\n", "CRELIB ?= true ;\n", "QSYSLIB ?= jam ;\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", "}\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", "YACC ?= \"\" ;\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 GetTargetVar\n", "{\n", "on $(<) { return $($(>)) ; }\n", "}\n", "rule Cc\n", "{\n", "local _s ;\n", "local _o ;\n", "_s = [ GetTargetVar $(<) : SUBDIRCCFLAGS ] ;\n", "_o = [ GetTargetVar $(<) : OPTIM ] ;\n", "Depends $(<) : $(>) ;\n", "if $(RELOCATE)\n", "{\n", "CcMv $(<) : $(>) ;\n", "}\n", "CCFLAGS on $(<) += $(CCFLAGS) $(_s) $(_o) ;\n", "CCHDRS on $(<) = [ on $(<) FIncludes $(HDRS) ] ;\n", "CCDEFS on $(<) = [ on $(<) FDefines $(DEFINES) ] ;\n", "}\n", "rule C++\n", "{\n", "local _s ;\n", "local _o ;\n", "_s = [ GetTargetVar $(<) : SUBDIRC++FLAGS ] ;\n", "_o = [ GetTargetVar $(<) : OPTIM ] ;\n", "Depends $(<) : $(>) ;\n", "if $(RELOCATE)\n", "{\n", "CcMv $(<) : $(>) ;\n", "}\n", "C++FLAGS on $(<) += $(C++FLAGS) $(_s) $(_o) ;\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", "Depends 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", "Clean clean : $(_t) ;\n", "}\n", "rule GenFile1\n", "{\n", "MakeLocate $(<) : $(LOCATE_SOURCE) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "}\n", "rule HardLink\n", "{\n", "Depends files : $(<) ;\n", "Depends $(<) : $(>) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "}\n", "rule HdrRule\n", "{\n", "local s = $(>:G=$(HDRGRIST:E)) ;\n", "Includes $(<) : $(s) ;\n", "NoCare $(s) ;\n", "HDRSCAN on $(s) = $(HDRSCAN) ;\n", "HDRRULE on $(s) = $(HDRRULE) ;\n", "HDRGRIST on $(s) = $(HDRGRIST) ;\n", "HDRSEARCH on $(s) = $(HDRSEARCH) ;\n", "SEARCH on $(s) = $(HDRSEARCH) ;\n", "local d = $(<:D) ; \n", "local h ;\n", "if $(d) \n", "{\n", "for i in $(d:R=$(HDRSEARCH)) \n", "{\n", "if ! $(i) in $(HDRSEARCH) $(h) { h += $(i) ; } \n", "}\n", "for i in $(s)\n", "{\n", "if $(d) != $(i:D)\n", "{\n", "HDRSEARCH on $(i) += $(h) ;\n", "SEARCH on $(i) += $(h) ;\n", "}\n", "}\n", "}\n", "}\n", "rule InstallInto\n", "{\n", "local i t ;\n", "t = $(>:G=$(INSTALLGRIST)) ;\n", "Depends install : $(t) ;\n", "Clean 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", "Clean 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", "Depends obj : $(_s) ;\n", "}\n", "else\n", "{\n", "Depends 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", "Clean 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 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", "Depends exe : $(_t) ;\n", "Depends $(_t) : $(_s) ;\n", "MakeLocate $(_t) : $(LOCATE_TARGET) ;\n", "Clean 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", "Depends 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", "Clean 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 .m : Cc $(<) : $(>) ;\n", "case .mm : Cc $(<) : $(>) ;\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", "Depends 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", "Depends shell : $(<) ;\n", "Depends $(<) : $(>) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "MODE on $(<) = $(SHELLMODE) ;\n", "Clean clean : $(<) ;\n", "Chmod $(<) ;\n", "}\n", "rule SoftLink\n", "{\n", "Depends files : $(<) ;\n", "Depends $(<) : $(>) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "Clean 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", "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 $($(_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", "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 = $(<:BS=.h) ;\n", "MakeLocate $(<) $(_h) : $(LOCATE_SOURCE) ;\n", "if $(YACC)\n", "{\n", "Depends $(<) $(_h) : $(>) ;\n", "Yacc1 $(<) $(_h) : $(>) ;\n", "YaccMv $(<) $(_h) : $(>) ;\n", "Clean clean : $(<) $(_h) ;\n", "}\n", "Includes $(<) : $(_h) ;\n", "HDRRULE on $(>) = YaccHdr ;\n", "}\n", "rule YaccHdr\n", "{\n", "HdrRule $(<:S=$(YACCGEN)) : $(>) ;\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", "if ! $(SOURCE_GRIST)\n", "{\n", "return $(<) ;\n", "}\n", "else \n", "{\n", "local _i _o ;\n", "for _i in $(<)\n", "{\n", "switch $(_i)\n", "{\n", "case *.h : _o += $(_i) ;\n", "case * : _o += $(_i:G=$(SOURCE_GRIST)) ;\n", "}\n", "}\n", "return $(_o) ;\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 $(AS400)\n", "{\n", "actions updated piecemeal Archive\n", "{\n", "OUTPUTDIR=$(QSYSLIB) $(AR) $(<) $(>)\n", "}\n", "actions Cc\n", "{\n", "OUTPUTDIR=$(QSYSLIB) $(CC) -c -o $(<) $(CCFLAGS) $(CCDEFS) $(CCHDRS) $(>)\n", "}\n", "actions C++\n", "{\n", "OUTPUTDIR=$(QSYSLIB) $(C++) -c -o $(<) $(C++FLAGS) $(CCDEFS) $(CCHDRS) $(>)\n", "}\n", "actions Link bind NEEDLIBS\n", "{\n", "OUTPUTDIR=$(QSYSLIB) $(LINK) $(LINKFLAGS) -o $(<) $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS)\n", "}\n", "actions CreLib \n", "{\n", "dest=`echo $(<) | sed -e 's#.*/\\([^/]*\\)\\.a$#/qsys.lib/$(QSYSLIB).lib/\\1.bnddir#'`\n", "[ -h $(<) ] || ln -s $dest $(<)\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 };
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#39 | 23298 | Nick Poole |
Updating Jam source The changes here include a simplified Windows build process: the makefile now has 2 MSVC sections, one 32-bit the other 64-bit. |
||
#38 | 9949 | brett |
Build rules for jam on Darwin 9.0. p4transfer.py: Transferred from production |
||
#37 | 9948 | brett |
Update build rules for AIX53. p4transfer.py: Transferred from production |
||
#36 | 9947 | brett |
On a Windows debug build the /MT flag was used in addition to the /MTd flag. Basically harmless except the compiler issued a warning for every file compiled. Removed the use of the /MT flag in the jambase arena. This allows the Jamrules to properly set this flag as required. Also when doing a Smart Heap debug build, duplicate symbols in the Smart Heap library conflicted with the standard Windows CRT library. Adding a /FORCE to the link line solves this problem. This is a very narrow case and should not effect builds without Smart Heap. Jam must be rebuilt to remove the /MT and /MTd warning. p4transfer.py: Transferred from production |
||
#35 | 9946 | brett |
Remove hard coded paths to the Visual Studio SDK libraries. As of Visual Studio 2008 and including 2010 the SDK libraries, like kernel32.lib, have been moved out of the VC directory structure. These hard coded paths prevented jam from building. Test built jam with VS2005 x64 and x86, VS2010 x64 and x86 with these new settings. Test built main/p4 in these combinations as well. p4transfer.py: Transferred from production |
||
#34 | 9945 | brett |
Followon change to 142516. The x86 build was using VS2003 with the VS2005 flags. Placed the VS2003 x86 build rules before the VS2005 x86 build rules and accounted for both MSVCDIR and MSVCDir. p4transfer.py: Transferred from production |
||
#33 | 9944 | brett |
Move the /MT flag for NET 2005 into jam's Jamfile and out of the Jambase file. This removes the conflict with the various TYPE=dyn, TYPE=dyng and so on, yet compiles jam as multi threaded. p4transfer.py: Transferred from production |
||
#32 | 9943 | brett |
Build jam on Windows using NET 2005 in X86 mode. This is the counter part to NET 2005 in X64 mode. p4transfer.py: Transferred from production |
||
#31 | 9942 | noahf |
Follow-on to change 129197: Update JAMBASEDATE and submit updated jambase.c generated from Jambase. p4transfer.py: Transferred from production |
||
#30 | 9941 | Perforce staff |
New jambase.c to follow new Jambase. p4transfer.py: Transferred from production |
||
#29 | 9940 | Perforce staff |
Fix jam HdrRule change 79346 -- it has horrible combinatoric behavior when you have system include files that go like this: arpa/something includes sys/something includes machine/something includes sys/something-else Now HdrRule tries to be as conservative as possible to avoid building monster SEARCH lists. This is needed for AIX 5.3, where they apparently have such wild include mazes. Change to unreleased behavior. p4transfer.py: Transferred from production |
||
#28 | 9939 | brett |
An attempt at sorting out the various 64bit Windows builds. IA64 indicates the Intel Itanium 64bit Windows build. X64 indicates the AMD64 and the Intel EM64T 64bit Windows build. It should not be necessary to set MSVCVer or OSPLAT for these builds. Hopefully these changes didn't break the AMD64 Linux build. p4transfer.py: Transferred from production |
||
#27 | 9938 | brett |
Jam changes for building on the AMD64 platform. The .NET 2005 beta2 compiler requires several flags. First it is necessary to turn off the depreciation stuff, CRT functions like strcpy sprintf and so on are now viewed as insecure by MS. For now it is still possible to use them with the correct application of compile flags. MS is making noises in line with taking these functions away for good. The "Win64" token was used for 64 bit builds. This is now a bit ambiguous since it covers x64, ia64 and em64t. With this change Win64 has been retired and we use x64 for amd64, ia64 for the Itanium and em64t for the extended memory processors. Set MSVCVer accordingly. MSVCNT is set as always, to the location of the VC directory, VC98, VC7 and now just VC. For the most part the x64 build works on amd64, the exception being a template problem in nettcp.cc. That problem will not be corrected in this change. p4transfer.py: Transferred from production |
||
#26 | 9937 | tony |
jam and 2004.2 p4 client for AS/400. Built on AS/400 V5R2 with native ILE C/C++ compiler. Note, this build reports itself as P4/AS400/2004.2/76944 but this change contains porting changes that were required to make the build work so the changelist number is incorrect. This can be resolved with a clean build for 2005.1 at a later date. p4.sav and jam.sav are AS/400 "Save Files" that can be used to install the software on an AS/400 machine. The p4.sav file includes the p4.cmd and p4sync.cmd files we distributed with our older AS/400 builds. These files define a forms-type interface for supplying the parameters to the commands when you run them. Porting change only. No functional change. p4transfer.py: Transferred from production |
||
#25 | 9936 | Perforce staff |
Fix to HdrRule to handle '#include "path/file"': if the included file has a directory component, then SEARCH and HDRSEARCH are set to include the previous HDRSEARCH with 'path' appended. Without this, then any files included by "path/file" might not be found by jam, as it didn't know to look in the 'path' subdirectory. This is needed for p4v's central 'windows' include file. p4transfer.py: Transferred from production |
||
#24 | 3072 | Perforce staff | Bring generated jam files up to date. | ||
#23 | 2850 | rmg |
Mac classic MPW Codewarrior 7 upgrades: minor compiling issues, new paths in Jambase for libraries and includes, and separate out GenFile1 that sets PATH for UNIX only, as it does't work under MPW (or anything other than with sh). Porting change, noted in RELNOTES. === computer:1666: Change 41285 by evalynne@evalynne-bld-mac on 2003/02/05 11:47:19 |
||
#22 | 2849 | rmg |
WinXP IA64 porting: set MSVCNT to the root of the SDK and MSVCVer to Win64. Jam: change handle type to long long (too much to include windows.h?); bury IA64 in the library path in Jambase. timer.cc: use long long for timer. Also pulled over main's Jamsh.bat and extended it to handle the IA64 SDK environment when MSVCVer=Win64. Finally wrote a TarBall rule for NT that works (still uses tar and cp, but written in cmd syntax), so 'jam api' works. Porting changes, noted in RELNOTES. === computer:1666: Change 40867 by perforce@tridium on 2003/01/24 09:01:01 |
||
#21 | 2615 | rmg |
Remove NT FQuote rule, as (at least with the command shell I use), \" is required to pass quotes on the command line. Fix to bug introduced by 2.5rc1. Noted in the RELNOTES (for the moment) as a change between 2.5rc1 and 2.5rc2. === computer:1666: Change 40127 by seiwald@tricks-seiwald on 2003/01/14 16:20:25 |
||
#20 | 2567 | rmg | Check in regenerated jambase.c, prepatory to 2.5rc1. | ||
#19 | 2557 | rmg |
Shuffle mechanism for optional Jamrules includes: now no error message is issued for a missing include file marked with NOCARE. Previously, we used Glob to try to find the optional Jamrules files, but on VMS that doesn't work so well: Glob returns all uppercase file names with .'s at the end, which doesn't match "Jamrules" at all. The NOCARE part is a user-visible change documented in RELNOTES. === computer:1666: Change 39273 by seiwald@waffle-cyg-seiwald on 2002/12/19 22:44:03 |
||
#18 | 2503 | rmg |
No longer link jam with advapi32.lib -- it isn't needed and it keeps moving. No functional change. === computer:1666: Change 38674 by seiwald@tricks-seiwald on 2002/12/10 12:02:55 |
||
#17 | 2497 | rmg |
Jambase no longer announces the compiler on Windows. It doesn't announce anything else. User visible change documented in RELNOTES. === computer:1666: Change 38194 by seiwald@tricks-seiwald on 2002/11/25 15:02:57 |
||
#16 | 2496 | rmg |
Fix SubInclude's error message so that it actually mentions the variable that is unset. Also bumped patchlevel to 2.4.2 capriciously. Change to unreleased behavior. === computer:1666: Change 38182 by seiwald@tricks-seiwald on 2002/11/25 10:47:50 |
||
#15 | 2493 | rmg |
Rewrite the past: update all jam's source with comments to reflect changes since about 2.3, very early 2001. Whitespace only change. === computer:1666: Change 37660 by seiwald@play-seiwald on 2002/11/06 22:41:35 Note: I regenerated jamgram.c on my linux 7.3 system prior to the submit, since patch was so unhappy trying to lay down the changes from Christopher's change. Presumably this is just due to different yacc/bison/whatever particulars on the system where Christopher made the changes originally. - rmg |
||
#14 | 2480 | rmg |
Rewrite jam's SubDir rule to allow multiple roots. Infrastructure change. === computer:1666: Change 33320 by seiwald@thin on 2002/05/13 10:10:50 |
||
#13 | 1580 | rmg |
Changes for 2.4beta. Yes, Christopher, I brashly said "2.4-dev WAS the beta" at tea yesterday, but I've since come to my better instincts (got chicken?), so this one will say rmg $ jam -v Jam 2.4beta. OS=LINUX. Copyright 1993-2002 Christopher Seiwald. for a week or two, at least. |
||
#12 | 1539 | Perforce staff |
Fix definitions of FIncludes/FDefines for OS2 and NT, mistakes caught by Craigh McPheeters. This corrects behavior altered since jam 2.3 and prior to 2.4. |
||
#11 | 1532 | Perforce staff |
Submit up-to-date built source files for bootstrapping. Previously, you needed jam to build jam because the built source files, which make(1) doesn't make, were out of date. |
||
#10 | 1355 | rmg |
Record integration of Change 281 by john_belmonte. (This was actually dropped in as part of the Jam 2.3 release; the present change serves to record the fact in the integration history, only.) |
||
#9 | 1344 | rmg |
Under NT, default $(MV) to "move /y" in Jambase. Logically (and in the integ hhistory) integrates Change 390 by Eric Scouten. Cc: eric@scouten.com |
||
#8 | 1319 | rmg |
Jam 2.3 + Perforce's internal changes. This change is a drop of the Perforce internal Jam changes since the 2.3 public release. The individual changes represented herein are preserved in the //guest/richard_geiger/intjam/ branch. The intent of this drop is to provide a base, from which other contributors' Jam branches may be integrated into. It is not intended to become a packaged release in this state. We will be integrating changes from other users prior to creating the next packaged release. Please refer to the src/RELNOTES file for an overview of the changes present in this integration. - Richard Geiger Open Source Engineer at Perforce |
||
#7 | 486 | Perforce staff |
Jam 2.3. See RELNOTES for a list of changes from 2.2.x. Just about every source file was touched when jam got ANSI-fied. |
||
#6 | 211 | Perforce staff | Jeff Sickel's Mac OS X port. | ||
#5 | 76 | Laura Wingerd |
Integrate command-block-too-long fix, plus minor doc updates. Jam/MR release level is now 2.2.5. (change 72, change 73, change 74, change 75) |
||
#4 | 67 | Laura Wingerd |
Integrate Perforce's jam changes & project page update (change 59, change 60, change 61, change 62, change 63, change 64, change 66) |
||
#3 | 5 | Perforce maintenance | Jam/MR 2.2.4 (HDRPATTERN, JAMUNAME, JAMSHELL, plus misc tweaks) | ||
#2 | 4 | Perforce maintenance | Jam/MR 2.2.2 (AmigaOS support) | ||
#1 | 2 | laura | Add Jam/MR 2.2 source |