| | |
| | char *jambase[] = { |
| | |
| | "if $(NT)\n", |
| | "{\n", |
| | "SLASH ?= \\\\ ;\n", |
| | "}\n", |
| | "SLASH ?= / ;\n", |
| | "rule find-to-root ( dir : patterns + )\n", |
| | "{\n", |
| | "local globs = [ GLOB $(dir) : $(patterns) ] ;\n", |
| | "while ! $(globs) && $(dir:P) != $(dir)\n", |
| | "{\n", |
| | "dir = $(dir:P) ;\n", |
| | "globs = [ GLOB $(dir) : $(patterns) ] ;\n", |
| | "}\n", |
| | "return $(globs) ;\n", |
| | "}\n", |
| | ".boost-build-file = ;\n", |
| | ".bootstrap-file = ;\n", |
| | "BOOST_BUILD_PATH.user-value = $(BOOST_BUILD_PATH) ;\n", |
| | "if ! $(BOOST_BUILD_PATH) && $(UNIX)\n", |
| | "{\n", |
| | "BOOST_BUILD_PATH = /usr/share/boost-build ;\n", |
| | "}\n", |
| | "rule _poke ( module-name ? : variables + : value * )\n", |
| | "{\n", |
| | "module $(<)\n", |
| | "{\n", |
| | "$(>) = $(3) ;\n", |
| | "}\n", |
| | "}\n", |
| | "rule boost-build ( dir ? )\n", |
| | "{\n", |
| | "if $(.bootstrap-file)\n", |
| | "{\n", |
| | "ECHO \"Error: Illegal attempt to re-bootstrap the build system by invoking\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" 'boost-build\" $(dir) \";'\" ;\n", |
| | "ECHO ;\n", |
| | "EXIT \"Please consult the documentation at 'http://www.boost.org'.\" ;\n", |
| | "}\n", |
| | "BOOST_BUILD_PATH = $(dir:R=$(.boost-build-file:D)) $(BOOST_BUILD_PATH) ;\n", |
| | "_poke .ENVIRON : BOOST_BUILD_PATH : $(BOOST_BUILD_PATH) ;\n", |
| | "local bootstrap-file = [ GLOB $(BOOST_BUILD_PATH) : bootstrap.jam ] ;\n", |
| | ".bootstrap-file = $(bootstrap-file[1]) ;\n", |
| | "if ! $(.bootstrap-file)\n", |
| | "{\n", |
| | "ECHO \"Unable to load Boost.Build: could not find build system.\" ;\n", |
| | "ECHO --------------------------------------------------------- ;\n", |
| | "ECHO \"$(.boost-build-file) attempted to load the build system by invoking\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" 'boost-build\" $(dir) \";'\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \"but we were unable to find \\\"bootstrap.jam\\\" in the specified directory\" ;\n", |
| | "ECHO \"or in BOOST_BUILD_PATH (searching \"$(BOOST_BUILD_PATH:J=\", \")\").\" ;\n", |
| | "ECHO ;\n", |
| | "EXIT \"Please consult the documentation at 'http://www.boost.org'.\" ;\n", |
| | "}\n", |
| | "if [ MATCH .*(--debug-configuration).* : $(ARGV) ]\n", |
| | "{\n", |
| | "ECHO \"notice: loading Boost.Build from\"\n", |
| | "[ NORMALIZE_PATH $(.bootstrap-file:D) ] ;\n", |
| | "}\n", |
| | "include $(.bootstrap-file) ;\n", |
| | "}\n", |
| | "if [ MATCH .*(b2).* : $(ARGV[1]:BL) ] \n", |
| | "|| [ MATCH .*(bjam).* : $(ARGV[1]:BL) ]\n", |
| | "|| $(BOOST_ROOT) # A temporary measure so Jam works with Boost.Build v1.\n", |
| | "{\n", |
| | "local search-path = $(BOOST_BUILD_PATH) $(BOOST_ROOT) ;\n", |
| | "local self = [ SELF_PATH ] ;\n", |
| | "local boost-build-relative = ../../share/boost-build ;\n", |
| | "local self-based-path = [ NORMALIZE_PATH $(boost-build-relative:R=$(self)) ] ;\n", |
| | "local boost-build-files =\n", |
| | "[ find-to-root [ PWD ] : boost-build.jam ]\n", |
| | "[ GLOB $(self-based-path) : boost-build.jam ]\n", |
| | "[ GLOB $(search-path) : boost-build.jam ] ;\n", |
| | ".boost-build-file = $(boost-build-files[1]) ;\n", |
| | "if ! $(.boost-build-file)\n", |
| | "{\n", |
| | "ECHO \"Unable to load Boost.Build: could not find \\\"boost-build.jam\\\"\" ;\n", |
| | "ECHO --------------------------------------------------------------- ;\n", |
| | "if ! [ MATCH .*(bjam).* : $(ARGV[1]:BL) ]\n", |
| | "{\n", |
| | "ECHO \"BOOST_ROOT must be set, either in the environment, or \" ;\n", |
| | "ECHO \"on the command-line with -sBOOST_ROOT=..., to the root\" ;\n", |
| | "ECHO \"of the boost installation.\" ;\n", |
| | "ECHO ;\n", |
| | "}\n", |
| | "ECHO \"Attempted search from\" [ PWD ] \"up to the root\" ;\n", |
| | "ECHO \"at\" $(self-based-path) ;\n", |
| | "ECHO \"and in these directories from BOOST_BUILD_PATH and BOOST_ROOT: \"$(search-path:J=\", \")\".\" ;\n", |
| | "EXIT \"Please consult the documentation at 'http://www.boost.org'.\" ;\n", |
| | "}\n", |
| | "if [ MATCH .*(--debug-configuration).* : $(ARGV) ]\n", |
| | "{\n", |
| | "ECHO \"notice: found boost-build.jam at\"\n", |
| | "[ NORMALIZE_PATH $(.boost-build-file) ] ;\n", |
| | "}\n", |
| | "include $(.boost-build-file) ;\n", |
| | "if ! $(.bootstrap-file)\n", |
| | "{\n", |
| | "ECHO \"Unable to load Boost.Build\" ;\n", |
| | "ECHO -------------------------- ;\n", |
| | "ECHO \"\\\"$(.boost-build-file)\\\" was found by searching from\" [ PWD ] \"up to the root\" ;\n", |
| | "ECHO \"and in these directories from BOOST_BUILD_PATH and BOOST_ROOT: \"$(search-path:J=\", \")\".\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \"However, it failed to call the \\\"boost-build\\\" rule to indicate\" ;\n", |
| | "ECHO \"the location of the build system.\" ;\n", |
| | "ECHO ;\n", |
| | "EXIT \"Please consult the documentation at 'http://www.boost.org'.\" ;\n", |
| | "}\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "if $(NT)\n", |
| | "{\n", |
| | "local SUPPORTED_TOOLSETS = \"BORLANDC\" \"VC7\" \"VISUALC\" \"VISUALC16\" \"INTELC\" \"WATCOM\"\n", |
| | "\"MINGW\" \"LCC\" ;\n", |
| | "TOOLSET = \"\" ;\n", |
| | "if $(JAM_TOOLSET)\n", |
| | "{\n", |
| | "local t ;\n", |
| | "for t in $(SUPPORTED_TOOLSETS)\n", |
| | "{\n", |
| | "$(t) = $($(t):J=\" \") ; # reconstitute paths with spaces in them\n", |
| | "if $(t) = $(JAM_TOOLSET) { TOOLSET = $(t) ; }\n", |
| | "}\n", |
| | "if ! $(TOOLSET)\n", |
| | "{\n", |
| | "ECHO \"The JAM_TOOLSET environment variable is defined but its value\" ;\n", |
| | "ECHO \"is invalid, please use one of the following:\" ;\n", |
| | "ECHO ;\n", |
| | "for t in $(SUPPORTED_TOOLSETS) { ECHO \" \" $(t) ; }\n", |
| | "EXIT ;\n", |
| | "}\n", |
| | "}\n", |
| | "if ! $(TOOLSET)\n", |
| | "{\n", |
| | "if $(BCCROOT)\n", |
| | "{\n", |
| | "TOOLSET = BORLANDC ;\n", |
| | "BORLANDC = $(BCCROOT:J=\" \") ;\n", |
| | "}\n", |
| | "else if $(MSVC)\n", |
| | "{\n", |
| | "TOOLSET = VISUALC16 ;\n", |
| | "VISUALC16 = $(MSVC:J=\" \") ;\n", |
| | "}\n", |
| | "else if $(MSVCNT)\n", |
| | "{\n", |
| | "TOOLSET = VISUALC ;\n", |
| | "VISUALC = $(MSVCNT:J=\" \") ;\n", |
| | "}\n", |
| | "else if $(MSVCDir)\n", |
| | "{\n", |
| | "TOOLSET = VISUALC ;\n", |
| | "VISUALC = $(MSVCDir:J=\" \") ;\n", |
| | "}\n", |
| | "else if $(MINGW)\n", |
| | "{\n", |
| | "TOOLSET = MINGW ;\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "ECHO \"Jam cannot be run because, either:\" ;\n", |
| | "ECHO \" a. You didn't set BOOST_ROOT to indicate the root of your\" ;\n", |
| | "ECHO \" Boost installation.\" ;\n", |
| | "ECHO \" b. You are trying to use stock Jam but didn't indicate which\" ;\n", |
| | "ECHO \" compilation toolset to use. To do so, follow these simple\" ;\n", |
| | "ECHO \" instructions:\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" - define one of the following environment variable, with the\" ;\n", |
| | "ECHO \" appropriate value according to this list:\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" Variable Toolset Description\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" BORLANDC Borland C++ BC++ install path\" ;\n", |
| | "ECHO \" VISUALC Microsoft Visual C++ VC++ install path\" ;\n", |
| | "ECHO \" VISUALC16 Microsoft Visual C++ 16 bit VC++ 16 bit install\" ;\n", |
| | "ECHO \" INTELC Intel C/C++ IC++ install path\" ;\n", |
| | "ECHO \" WATCOM Watcom C/C++ Watcom install path\" ;\n", |
| | "ECHO \" MINGW MinGW (gcc) MinGW install path\" ;\n", |
| | "ECHO \" LCC Win32-LCC LCC-Win32 install path\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" - define the JAM_TOOLSET environment variable with the *name*\" ;\n", |
| | "ECHO \" of the toolset variable you want to use.\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" e.g.: set VISUALC=C:\\\\Visual6\" ;\n", |
| | "ECHO \" set JAM_TOOLSET=VISUALC\" ;\n", |
| | "EXIT ;\n", |
| | "}\n", |
| | "}\n", |
| | "CP ?= copy ;\n", |
| | "RM ?= del /f/q ;\n", |
| | "SLASH ?= \\\\ ;\n", |
| | "SUFLIB ?= .lib ;\n", |
| | "SUFOBJ ?= .obj ;\n", |
| | "SUFEXE ?= .exe ;\n", |
| | "if $(TOOLSET) = BORLANDC\n", |
| | "{\n", |
| | "ECHO \"Compiler is Borland C++\" ;\n", |
| | "AR ?= tlib /C /P64 ;\n", |
| | "CC ?= bcc32 ;\n", |
| | "CCFLAGS ?= -q -y -d -v -w-par -w-ccc -w-rch -w-pro -w-aus ;\n", |
| | "C++ ?= bcc32 ;\n", |
| | "C++FLAGS ?= -q -y -d -v -w-par -w-ccc -w-rch -w-pro -w-aus -P ;\n", |
| | "LINK ?= $(CC) ;\n", |
| | "LINKFLAGS ?= $(CCFLAGS) ;\n", |
| | "STDLIBPATH ?= $(BORLANDC)\\\\lib ;\n", |
| | "STDHDRS ?= $(BORLANDC)\\\\include ;\n", |
| | "NOARSCAN ?= true ;\n", |
| | "}\n", |
| | "else if $(TOOLSET) = VISUALC16\n", |
| | "{\n", |
| | "ECHO \"Compiler is Microsoft Visual C++ 16 bit\" ;\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", |
| | "\\\"$(VISUALC16)\\\\lib\\\\mlibce.lib\\\"\n", |
| | "\\\"$(VISUALC16)\\\\lib\\\\oldnames.lib\\\"\n", |
| | ";\n", |
| | "LINKLIBS ?= ;\n", |
| | "NOARSCAN ?= true ;\n", |
| | "OPTIM ?= \"\" ;\n", |
| | "STDHDRS ?= $(VISUALC16)\\\\include ;\n", |
| | "UNDEFFLAG ?= \"/u _\" ;\n", |
| | "}\n", |
| | "else if $(TOOLSET) = VISUALC\n", |
| | "{\n", |
| | "ECHO \"Compiler is Microsoft Visual C++\" ;\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 ?= \\\"$(VISUALC)\\\\lib\\\\advapi32.lib\\\"\n", |
| | "\\\"$(VISUALC)\\\\lib\\\\gdi32.lib\\\"\n", |
| | "\\\"$(VISUALC)\\\\lib\\\\user32.lib\\\"\n", |
| | "\\\"$(VISUALC)\\\\lib\\\\kernel32.lib\\\" ;\n", |
| | "OPTIM ?= \"\" ;\n", |
| | "STDHDRS ?= $(VISUALC)\\\\include ;\n", |
| | "UNDEFFLAG ?= \"/u _\" ;\n", |
| | "}\n", |
| | "else if $(TOOLSET) = VC7\n", |
| | "{\n", |
| | "ECHO \"Compiler is Microsoft Visual C++ .NET\" ;\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 ?= \\\"$(VISUALC)\\\\PlatformSDK\\\\lib\\\\advapi32.lib\\\"\n", |
| | "\\\"$(VISUALC)\\\\PlatformSDK\\\\lib\\\\gdi32.lib\\\"\n", |
| | "\\\"$(VISUALC)\\\\PlatformSDK\\\\lib\\\\user32.lib\\\"\n", |
| | "\\\"$(VISUALC)\\\\PlatformSDK\\\\lib\\\\kernel32.lib\\\" ;\n", |
| | "OPTIM ?= \"\" ;\n", |
| | "STDHDRS ?= \\\"$(VISUALC)\\\\include\\\"\n", |
| | "\\\"$(VISUALC)\\\\PlatformSDK\\\\include\\\" ;\n", |
| | "UNDEFFLAG ?= \"/u _\" ;\n", |
| | "}\n", |
| | "else if $(TOOLSET) = INTELC\n", |
| | "{\n", |
| | "ECHO \"Compiler is Intel C/C++\" ;\n", |
| | "if ! $(VISUALC)\n", |
| | "{\n", |
| | "ECHO \"As a special exception, when using the Intel C++ compiler, you need\" ;\n", |
| | "ECHO \"to define the VISUALC environment variable to indicate the location\" ;\n", |
| | "ECHO \"of your Visual C++ installation. Aborting..\" ;\n", |
| | "EXIT ;\n", |
| | "}\n", |
| | "AR ?= lib ;\n", |
| | "AS ?= masm386 ;\n", |
| | "CC ?= icl /nologo ;\n", |
| | "CCFLAGS ?= \"\" ;\n", |
| | "C++ ?= $(CC) ;\n", |
| | "C++FLAGS ?= $(CCFLAGS) ;\n", |
| | "LINK ?= link /nologo ;\n", |
| | "LINKFLAGS ?= \"\" ;\n", |
| | "LINKLIBS ?= $(VISUALC)\\\\lib\\\\advapi32.lib\n", |
| | "$(VISUALC)\\\\lib\\\\kernel32.lib\n", |
| | ";\n", |
| | "OPTIM ?= \"\" ;\n", |
| | "STDHDRS ?= $(INTELC)\\include $(VISUALC)\\\\include ;\n", |
| | "UNDEFFLAG ?= \"/u _\" ;\n", |
| | "}\n", |
| | "else if $(TOOLSET) = WATCOM\n", |
| | "{\n", |
| | "ECHO \"Compiler is Watcom C/C++\" ;\n", |
| | "AR ?= wlib ;\n", |
| | "CC ?= wcc386 ;\n", |
| | "CCFLAGS ?= /zq /DWIN32 /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 $(WATCOM)\\\\h\\\\nt ;\n", |
| | "SUFEXE ?= .exe ;\n", |
| | "SUFLIB ?= .lib ;\n", |
| | "SUFOBJ ?= .obj ;\n", |
| | "UNDEFFLAG ?= \"/u _\" ;\n", |
| | "}\n", |
| | "else if $(TOOLSET) = MINGW\n", |
| | "{\n", |
| | "ECHO \"Compiler is GCC with Mingw\" ;\n", |
| | "AR ?= ar -ru ;\n", |
| | "CC ?= gcc ;\n", |
| | "CCFLAGS ?= \"\" ;\n", |
| | "C++ ?= $(CC) ;\n", |
| | "C++FLAGS ?= $(CCFLAGS) ;\n", |
| | "LINK ?= $(CC) ;\n", |
| | "LINKFLAGS ?= \"\" ;\n", |
| | "LINKLIBS ?= \"\" ;\n", |
| | "OPTIM ?= ;\n", |
| | "SUFOBJ = .o ;\n", |
| | "SUFLIB = .a ;\n", |
| | "SLASH = / ;\n", |
| | "}\n", |
| | "else if $(TOOLSET) = LCC\n", |
| | "{\n", |
| | "ECHO \"Compiler is Win32-LCC\" ;\n", |
| | "AR ?= lcclib ;\n", |
| | "CC ?= lcc ;\n", |
| | "CCFLAGS ?= \"\" ;\n", |
| | "C++ ?= $(CC) ;\n", |
| | "C++FLAGS ?= $(CCFLAGS) ;\n", |
| | "LINK ?= lcclnk ;\n", |
| | "LINKFLAGS ?= \"\" ;\n", |
| | "LINKLIBS ?= \"\" ;\n", |
| | "OPTIM ?= ;\n", |
| | "NOARSCAN = true ;\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "EXIT On NT, set BCCROOT, MSVCNT, MINGW or MSVC to the root of the\n", |
| | "Borland or Microsoft directories. ;\n", |
| | "}\n", |
| | "}\n", |
| | "else if $(OS2)\n", |
| | "{\n", |
| | "local SUPPORTED_TOOLSETS = \"EMX\" \"WATCOM\" ;\n", |
| | "TOOLSET = \"\" ;\n", |
| | "if $(JAM_TOOLSET)\n", |
| | "{\n", |
| | "local t ;\n", |
| | "for t in $(SUPPORTED_TOOLSETS)\n", |
| | "{\n", |
| | "$(t) = $($(t):J=\" \") ; # reconstitute paths with spaces in them\n", |
| | "if $(t) = $(JAM_TOOLSET) { TOOLSET = $(t) ; }\n", |
| | "}\n", |
| | "if ! $(TOOLSET)\n", |
| | "{\n", |
| | "ECHO \"The JAM_TOOLSET environment variable is defined but its value\" ;\n", |
| | "ECHO \"is invalid, please use one of the following:\" ;\n", |
| | "ECHO ;\n", |
| | "for t in $(SUPPORTED_TOOLSETS) { ECHO \" \" $(t) ; }\n", |
| | "EXIT ;\n", |
| | "}\n", |
| | "}\n", |
| | "if ! $(TOOLSET)\n", |
| | "{\n", |
| | "if $(watcom)\n", |
| | "{\n", |
| | "WATCOM = $(watcom:J=\" \") ;\n", |
| | "TOOLSET = WATCOM ;\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "ECHO \"Jam cannot be run because you didn't indicate which compilation toolset\" ;\n", |
| | "ECHO \"to use. To do so, follow these simple instructions:\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" - define one of the following environment variable, with the\" ;\n", |
| | "ECHO \" appropriate value according to this list:\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" Variable Toolset Description\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" WATCOM Watcom C/C++ Watcom install path\" ;\n", |
| | "ECHO \" EMX EMX (gcc) EMX install path\" ;\n", |
| | "ECHO \" VISUALAGE IBM Visual Age C/C++ VisualAge install path\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" - define the JAM_TOOLSET environment variable with the *name*\" ;\n", |
| | "ECHO \" of the toolset variable you want to use.\" ;\n", |
| | "ECHO ;\n", |
| | "ECHO \" e.g.: set WATCOM=C:\\WATCOM\" ;\n", |
| | "ECHO \" set JAM_TOOLSET=WATCOM\" ;\n", |
| | "ECHO ;\n", |
| | "EXIT ;\n", |
| | "}\n", |
| | "}\n", |
| | "RM = del /f ;\n", |
| | "CP = copy ;\n", |
| | "MV ?= move ;\n", |
| | "DOT ?= . ;\n", |
| | "DOTDOT ?= .. ;\n", |
| | "SUFLIB ?= .lib ;\n", |
| | "SUFOBJ ?= .obj ;\n", |
| | "SUFEXE ?= .exe ;\n", |
| | "if $(TOOLSET) = WATCOM\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", |
| | "LINK ?= wcl386 ;\n", |
| | "LINKFLAGS ?= /zq ; # zq=quiet\n", |
| | "LINKLIBS ?= ;\n", |
| | "NOARSCAN ?= true ;\n", |
| | "OPTIM ?= ;\n", |
| | "SLASH ?= \\\\ ;\n", |
| | "STDHDRS ?= $(WATCOM)\\\\h ;\n", |
| | "UNDEFFLAG ?= \"/u _\" ;\n", |
| | "}\n", |
| | "else if $(TOOLSET) = EMX\n", |
| | "{\n", |
| | "ECHO \"Compiler is GCC-EMX\" ;\n", |
| | "AR ?= ar -ru ;\n", |
| | "CC ?= gcc ;\n", |
| | "CCFLAGS ?= \"\" ;\n", |
| | "C++ ?= $(CC) ;\n", |
| | "C++FLAGS ?= $(CCFLAGS) ;\n", |
| | "LINK ?= $(CC) ;\n", |
| | "LINKFLAGS ?= \"\" ;\n", |
| | "LINKLIBS ?= \"\" ;\n", |
| | "OPTIM ?= ;\n", |
| | "SUFOBJ = .o ;\n", |
| | "SUFLIB = .a ;\n", |
| | "UNDEFFLAG ?= \"-U\" ;\n", |
| | "SLASH = / ;\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "EXIT \"Sorry, but the $(JAM_TOOLSET) toolset isn't supported for now\" ;\n", |
| | "}\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:Runtime PPC:MSL MPWCRuntime.lib\"\n", |
| | "\"$(CW):MSL:MSL_C:MSL_MacOS:Lib:PPC:MSL C.PPC MPW.Lib\" ;\n", |
| | "MPWNLLIBS ?=\n", |
| | "\"$(CW):MacOS Support:Libraries:Runtime:Runtime PPC:MSL MPWCRuntime.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:Runtime PPC:MSL RuntimePPC.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 -nomapcr ;\n", |
| | "CC ?= mwcppc ;\n", |
| | "CCFLAGS ?= -w off -nomapcr ;\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 && $(METROWERKS)\n", |
| | "{\n", |
| | "AR ?= mwld -xml -o ;\n", |
| | "BINDIR ?= /boot/apps ;\n", |
| | "CC ?= mwcc ;\n", |
| | "CCFLAGS ?= -nosyspath ;\n", |
| | "C++ ?= $(CC) ;\n", |
| | "C++FLAGS ?= -nosyspath ;\n", |
| | "FORTRAN ?= \"\" ;\n", |
| | "LIBDIR ?= /boot/develop/libraries ;\n", |
| | "LINK ?= mwld ;\n", |
| | "LINKFLAGS ?= \"\" ;\n", |
| | "MANDIR ?= /boot/documentation/\"Shell Tools\"/HTML ;\n", |
| | "NOARSCAN ?= true ;\n", |
| | "STDHDRS ?= /boot/develop/headers/posix ;\n", |
| | "}\n", |
| | "else if $(OS) = BEOS\n", |
| | "{\n", |
| | "BINDIR ?= /boot/apps ;\n", |
| | "CC ?= gcc ;\n", |
| | "C++ ?= $(CC) ;\n", |
| | "FORTRAN ?= \"\" ;\n", |
| | "LIBDIR ?= /boot/develop/libraries ;\n", |
| | "LINK ?= gcc ;\n", |
| | "LINKLIBS ?= -lnet ;\n", |
| | "NOARSCAN ?= true ;\n", |
| | "STDHDRS ?= /boot/develop/headers/posix ;\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", |
| | "RANLIB ?= \"\" ;\n", |
| | "SUFEXE ?= .exe ;\n", |
| | "YACC ?= \"bison -y\" ;\n", |
| | "case DGUX :\n", |
| | "RANLIB ?= \"\" ;\n", |
| | "RELOCATE ?= true ;\n", |
| | "case HPUX :\n", |
| | "YACC = ;\n", |
| | "CFLAGS += -Ae ;\n", |
| | "CCFLAGS += -Ae ;\n", |
| | "RANLIB ?= \"\" ;\n", |
| | "case INTERIX :\n", |
| | "CC ?= gcc ;\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", |
| | "AR ?= libtool -o ;\n", |
| | "C++ ?= c++ ;\n", |
| | "MANDIR ?= /usr/local/share/man ;\n", |
| | "RANLIB ?= \"\" ;\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", |
| | "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", |
| | "RSH ?= rsh ;\n", |
| | "SED ?= sed ;\n", |
| | "SHELLHEADER ?= \"#!/bin/sh\" ;\n", |
| | "SHELLMODE ?= 755 ;\n", |
| | "SLASH ?= / ;\n", |
| | "STDHDRS ?= /usr/include ;\n", |
| | "SUFEXE ?= \"\" ;\n", |
| | "SUFLIB ?= .a ;\n", |
| | "SUFOBJ ?= .o ;\n", |
| | "UNDEFFLAG ?= \"-u _\" ;\n", |
| | "YACC ?= ;\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", |
| | "}\n", |
| | "rule Bulk\n", |
| | "{\n", |
| | "local i ;\n", |
| | "for i in $(>)\n", |
| | "{\n", |
| | "File $(i:D=$(<)) : $(i) ;\n", |
| | "}\n", |
| | "}\n", |
| | "rule Cc\n", |
| | "{\n", |
| | "local _h ;\n", |
| | "DEPENDS $(<) : $(>) ;\n", |
| | "CCFLAGS on $(<) += $(CCFLAGS) $(SUBDIRCCFLAGS) ;\n", |
| | "if $(RELOCATE)\n", |
| | "{\n", |
| | "CcMv $(<) : $(>) ;\n", |
| | "}\n", |
| | "_h = $(SEARCH_SOURCE) $(HDRS) $(SUBDIRHDRS) ;\n", |
| | "if $(VMS) && $(_h)\n", |
| | "{\n", |
| | "SLASHINC on $(<) = \"/inc=(\" $(_h[1]) ,$(_h[2-]) \")\" ;\n", |
| | "}\n", |
| | "else if $(MAC) && $(_h)\n", |
| | "{\n", |
| | "local _i _j ;\n", |
| | "_j = $(_h[1]) ;\n", |
| | "for _i in $(_h[2-])\n", |
| | "{\n", |
| | "_j = $(_j),$(_i) ;\n", |
| | "}\n", |
| | "MACINC on $(<) = \\\"$(_j)\\\" ;\n", |
| | "}\n", |
| | "}\n", |
| | "rule C++\n", |
| | "{\n", |
| | "local _h ;\n", |
| | "DEPENDS $(<) : $(>) ;\n", |
| | "C++FLAGS on $(<) += $(C++FLAGS) $(SUBDIRC++FLAGS) ;\n", |
| | "if $(RELOCATE)\n", |
| | "{\n", |
| | "CcMv $(<) : $(>) ;\n", |
| | "}\n", |
| | "_h = $(SEARCH_SOURCE) $(HDRS) $(SUBDIRHDRS) ;\n", |
| | "if $(VMS) && $(_h)\n", |
| | "{\n", |
| | "SLASHINC on $(<) = \"/inc=(\" $(_h[1]) ,$(_h[2-]) \")\" ;\n", |
| | "}\n", |
| | "else if $(MAC) && $(_h)\n", |
| | "{\n", |
| | "local _i _j ;\n", |
| | "_j = $(_h[1]) ;\n", |
| | "for _i in $(_h[2-])\n", |
| | "{\n", |
| | "_j = $(_j),$(_i) ;\n", |
| | "}\n", |
| | "MACINC on $(<) = \\\"$(_j)\\\" ;\n", |
| | "}\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 HdrMacroFile\n", |
| | "{\n", |
| | "HDRMACRO $(<) ;\n", |
| | "}\n", |
| | "rule HdrRule\n", |
| | "{\n", |
| | "local s ;\n", |
| | "if $(HDRGRIST)\n", |
| | "{\n", |
| | "s = $(>:G=$(HDRGRIST)) ;\n", |
| | "} else {\n", |
| | "s = $(>) ;\n", |
| | "}\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", |
| | "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=installed) = $(EXEMODE) ;\n", |
| | "}\n", |
| | "rule InstallFile\n", |
| | "{\n", |
| | "InstallInto $(<) : $(>) ;\n", |
| | "MODE on $(>:G=installed) = $(FILEMODE) ;\n", |
| | "}\n", |
| | "rule InstallLib\n", |
| | "{\n", |
| | "InstallInto $(<) : $(>) ;\n", |
| | "MODE on $(>:G=installed) = $(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=installed) = $(FILEMODE) ;\n", |
| | "}\n", |
| | "rule InstallShell\n", |
| | "{\n", |
| | "InstallInto $(<) : $(>) ;\n", |
| | "MODE on $(>:G=installed) = $(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) || $(KEEPOBJS) ) { 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]) ;\n", |
| | "MkDir $(>[1]) ;\n", |
| | "}\n", |
| | "}\n", |
| | "rule MkDir\n", |
| | "{\n", |
| | "NOUPDATE $(<) ;\n", |
| | "if $(<) != $(DOT) && ! $($(<)-mkdir)\n", |
| | "{\n", |
| | "local s ;\n", |
| | "$(<)-mkdir = true ;\n", |
| | "MkDir1 $(<) ;\n", |
| | "Depends dirs : $(<) ;\n", |
| | "s = $(<:P) ;\n", |
| | "if $(NT)\n", |
| | "{\n", |
| | "switch $(s)\n", |
| | "{\n", |
| | "case *: : s = ;\n", |
| | "case *:\\\\ : s = ;\n", |
| | "}\n", |
| | "}\n", |
| | "if $(s) && $(s) != $(<)\n", |
| | "{\n", |
| | "Depends $(<) : $(s) ;\n", |
| | "MkDir $(s) ;\n", |
| | "}\n", |
| | "else if $(s)\n", |
| | "{\n", |
| | "NOTFILE $(s) ;\n", |
| | "}\n", |
| | "}\n", |
| | "}\n", |
| | "rule Object\n", |
| | "{\n", |
| | "local h ;\n", |
| | "Clean clean : $(<) ;\n", |
| | "MakeLocate $(<) : $(LOCATE_TARGET) ;\n", |
| | "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", |
| | "HDRS on $(<) = $(SEARCH_SOURCE) $(HDRS) $(SUBDIRHDRS) ;\n", |
| | "if $(SEARCH_SOURCE)\n", |
| | "{\n", |
| | "h = $(SEARCH_SOURCE) ;\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "h = \"\" ;\n", |
| | "}\n", |
| | "HDRRULE on $(>) = HdrRule ;\n", |
| | "HDRSCAN on $(>) = $(HDRPATTERN) ;\n", |
| | "HDRSEARCH on $(>) = $(HDRS) $(SUBDIRHDRS) $(h) $(STDHDRS) ;\n", |
| | "HDRGRIST on $(>) = $(HDRGRIST) ;\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=.c) ;\n", |
| | "Yacc $(<:S=.c) : $(>) ;\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 ObjectHdrs\n", |
| | "{\n", |
| | "HDRS on [ FGristFiles $(<:S=$(SUFOBJ)) ] += $(>) ;\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 SubDir\n", |
| | "{\n", |
| | "local _r _s ;\n", |
| | "if ! $($(<[1]))\n", |
| | "{\n", |
| | "if ! $(<[1])\n", |
| | "{\n", |
| | "EXIT SubDir syntax error ;\n", |
| | "}\n", |
| | "$(<[1]) = [ FSubDir $(<[2-]) ] ;\n", |
| | "}\n", |
| | "if ! $($(<[1])-included)\n", |
| | "{\n", |
| | "$(<[1])-included = TRUE ;\n", |
| | "_r = $($(<[1])RULES) ;\n", |
| | "if ! $(_r)\n", |
| | "{\n", |
| | "_r = $(JAMRULES:R=$($(<[1]))) ;\n", |
| | "}\n", |
| | "include $(_r) ;\n", |
| | "}\n", |
| | "_s = [ FDirName $(<[2-]) ] ;\n", |
| | "SUBDIR = $(_s:R=$($(<[1]))) ;\n", |
| | "SUBDIR_TOKENS = $(<[2-]) ;\n", |
| | "SEARCH_SOURCE = $(SUBDIR) ;\n", |
| | "LOCATE_SOURCE = $(ALL_LOCATE_TARGET) $(SUBDIR) ;\n", |
| | "LOCATE_TARGET = $(ALL_LOCATE_TARGET) $(SUBDIR) ;\n", |
| | "SOURCE_GRIST = [ FGrist $(<[2-]) ] ;\n", |
| | "SUBDIRCCFLAGS = ;\n", |
| | "SUBDIRC++FLAGS = ;\n", |
| | "SUBDIRHDRS = ;\n", |
| | "}\n", |
| | "rule SubDirCcFlags\n", |
| | "{\n", |
| | "SUBDIRCCFLAGS += $(<) ;\n", |
| | "}\n", |
| | "rule SubDirC++Flags\n", |
| | "{\n", |
| | "SUBDIRC++FLAGS += $(<) ;\n", |
| | "}\n", |
| | "rule SubDirHdrs\n", |
| | "{\n", |
| | "SUBDIRHDRS += $(<) ;\n", |
| | "}\n", |
| | "rule SubInclude\n", |
| | "{\n", |
| | "local _s ;\n", |
| | "if ! $($(<[1]))\n", |
| | "{\n", |
| | "EXIT Top level of source tree has not been set with $(<[1]) ;\n", |
| | "}\n", |
| | "_s = [ FDirName $(<[2-]) ] ;\n", |
| | "include $(JAMFILE:D=$(_s):R=$($(<[1]))) ;\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", |
| | "}\n", |
| | "rule FGrist\n", |
| | "{\n", |
| | "local _g _i ;\n", |
| | "_g = $(<[1]) ;\n", |
| | "for _i in $(<[2-])\n", |
| | "{\n", |
| | "_g = $(_g)!$(_i) ;\n", |
| | "}\n", |
| | "return $(_g) ;\n", |
| | "}\n", |
| | "rule FGristFiles\n", |
| | "{\n", |
| | "if ! $(SOURCE_GRIST)\n", |
| | "{\n", |
| | "return $(<) ;\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "return $(<:G=$(SOURCE_GRIST)) ;\n", |
| | "}\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 FConcat\n", |
| | "{\n", |
| | "local _t _r ;\n", |
| | "$(_r) = $(<[1]) ;\n", |
| | "for _t in $(<[2-])\n", |
| | "{\n", |
| | "$(_r) = $(_r)$(_t) ;\n", |
| | "}\n", |
| | "return $(_r) ;\n", |
| | "}\n", |
| | "rule FSubDir\n", |
| | "{\n", |
| | "local _i _d ;\n", |
| | "if ! $(<[1])\n", |
| | "{\n", |
| | "_d = $(DOT) ;\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "_d = $(DOTDOT) ;\n", |
| | "for _i in $(<[2-])\n", |
| | "{\n", |
| | "_d = $(_d:R=$(DOTDOT)) ;\n", |
| | "}\n", |
| | "}\n", |
| | "return $(_d) ;\n", |
| | "}\n", |
| | "rule FDirName\n", |
| | "{\n", |
| | "local _s _i ;\n", |
| | "if ! $(<)\n", |
| | "{\n", |
| | "_s = $(DOT) ;\n", |
| | "}\n", |
| | "else if $(VMS)\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", |
| | "else if $(MAC)\n", |
| | "{\n", |
| | "_s = $(DOT) ;\n", |
| | "for _i in $(<)\n", |
| | "{\n", |
| | "_s = $(_i:R=$(_s)) ;\n", |
| | "}\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "_s = $(<[1]) ;\n", |
| | "for _i in $(<[2-])\n", |
| | "{\n", |
| | "_s = $(_i:R=$(_s)) ;\n", |
| | "}\n", |
| | "}\n", |
| | "return $(_s) ;\n", |
| | "}\n", |
| | "rule _makeCommon\n", |
| | "{\n", |
| | "if $($(<)[1]) && $($(<)[1]) = $($(>)[1])\n", |
| | "{\n", |
| | "$(<) = $($(<)[2-]) ;\n", |
| | "$(>) = $($(>)[2-]) ;\n", |
| | "_makeCommon $(<) : $(>) ;\n", |
| | "}\n", |
| | "}\n", |
| | "rule FRelPath\n", |
| | "{\n", |
| | "local _l _r ;\n", |
| | "_l = $(<) ;\n", |
| | "_r = $(>) ;\n", |
| | "_makeCommon _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 unmakeDir\n", |
| | "{\n", |
| | "if $(>[1]:D) && $(>[1]:D) != $(>[1]) && $(>[1]:D) != \\\\\\\\\n", |
| | "{\n", |
| | "unmakeDir $(<) : $(>[1]:D) $(>[1]:BS) $(>[2-]) ;\n", |
| | "}\n", |
| | "else\n", |
| | "{\n", |
| | "$(<) = $(>) ;\n", |
| | "}\n", |
| | "}\n", |
| | "rule FConvertToSlashes\n", |
| | "{\n", |
| | "local _d, _s, _i ;\n", |
| | "unmakeDir _d : $(<) ;\n", |
| | "_s = $(_d[1]) ;\n", |
| | "for _i in $(_d[2-])\n", |
| | "{\n", |
| | "_s = $(_s)/$(_i) ;\n", |
| | "}\n", |
| | "return $(_s) ;\n", |
| | "}\n", |
| | "actions updated together piecemeal Archive\n", |
| | "{\n", |
| | "$(AR) $(<) $(>)\n", |
| | "}\n", |
| | "actions As\n", |
| | "{\n", |
| | "$(AS) $(ASFLAGS) -I$(HDRS) -o $(<) $(>)\n", |
| | "}\n", |
| | "actions C++\n", |
| | "{\n", |
| | "$(C++) -c $(C++FLAGS) $(OPTIM) -I$(HDRS) -o $(<) $(>)\n", |
| | "}\n", |
| | "actions Cc\n", |
| | "{\n", |
| | "$(CC) -c $(CCFLAGS) $(OPTIM) -I$(HDRS) -o $(<) $(>)\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 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) $(OPTIM) -I$(HDRS) $(>)\n", |
| | "}\n", |
| | "actions Cc\n", |
| | "{\n", |
| | "$(CC) -c $(CCFLAGS) $(OPTIM) -I$(HDRS) $(>)\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 $(NT)\n", |
| | "{\n", |
| | "if $(TOOLSET) = VISUALC || $(TOOLSET) = VC7 || $(TOOLSET) = INTELC\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 $(CCFLAGS) $(OPTIM) /Fo$(<) /I$(HDRS) /I$(STDHDRS) $(>)\n", |
| | "}\n", |
| | "actions C++\n", |
| | "{\n", |
| | "$(C++) /c $(C++FLAGS) $(OPTIM) /Fo$(<) /I$(HDRS) /I$(STDHDRS) /Tp$(>)\n", |
| | "}\n", |
| | "actions Link bind NEEDLIBS\n", |
| | "{\n", |
| | "$(LINK) $(LINKFLAGS) /out:$(<) $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS)\n", |
| | "}\n", |
| | "}\n", |
| | "else if $(TOOLSET) = VISUALC16\n", |
| | "{\n", |
| | "actions updated together piecemeal Archive\n", |
| | "{\n", |
| | "$(AR) $(<) -+$(>)\n", |
| | "}\n", |
| | "actions Cc\n", |
| | "{\n", |
| | "$(CC) /c $(CCFLAGS) $(OPTIM) /Fo$(<) /I$(HDRS) $(>)\n", |
| | "}\n", |
| | "actions C++\n", |
| | "{\n", |
| | "$(C++) /c $(C++FLAGS) $(OPTIM) /Fo$(<) /I$(HDRS) /Tp$(>)\n", |
| | "}\n", |
| | "actions Link bind NEEDLIBS\n", |
| | "{\n", |
| | "$(LINK) $(LINKFLAGS) /out:$(<) $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS)\n", |
| | "}\n", |
| | "}\n", |
| | "else if $(TOOLSET) = BORLANDC\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 $(C++FLAGS) $(OPTIM) -I$(HDRS) -o$(<) $(>)\n", |
| | "}\n", |
| | "actions Cc\n", |
| | "{\n", |
| | "$(CC) -c $(CCFLAGS) $(OPTIM) -I$(HDRS) -o$(<) $(>)\n", |
| | "}\n", |
| | "}\n", |
| | "else if $(TOOLSET) = MINGW\n", |
| | "{\n", |
| | "actions together piecemeal Archive\n", |
| | "{\n", |
| | "$(AR) $(<) $(>:T)\n", |
| | "}\n", |
| | "actions Cc\n", |
| | "{\n", |
| | "$(CC) -c $(CCFLAGS) $(OPTIM) -I$(HDRS) -o$(<) $(>)\n", |
| | "}\n", |
| | "actions C++\n", |
| | "{\n", |
| | "$(C++) -c $(C++FLAGS) $(OPTIM) -I$(HDRS) -o$(<) $(>)\n", |
| | "}\n", |
| | "}\n", |
| | "else if $(TOOLSET) = WATCOM\n", |
| | "{\n", |
| | "actions together piecemeal Archive\n", |
| | "{\n", |
| | "$(AR) $(<) +-$(>)\n", |
| | "}\n", |
| | "actions Cc\n", |
| | "{\n", |
| | "$(CC) $(CCFLAGS) $(OPTIM) /Fo=$(<) /I$(HDRS) $(>)\n", |
| | "}\n", |
| | "actions C++\n", |
| | "{\n", |
| | "$(C++) $(C++FLAGS) $(OPTIM) /Fo=$(<) /I$(HDRS) $(>)\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 $(TOOLSET) = LCC\n", |
| | "{\n", |
| | "actions together piecemeal Archive\n", |
| | "{\n", |
| | "$(AR) /out:$(<) $(>)\n", |
| | "}\n", |
| | "actions Cc\n", |
| | "{\n", |
| | "$(CC) $(CCFLAGS) $(OPTIM) -Fo$(<) -I$(HDRS) $(>)\n", |
| | "}\n", |
| | "actions Link bind NEEDLIBS\n", |
| | "{\n", |
| | "$(LINK) $(LINKFLAGS) -o $(<) $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS)\n", |
| | "}\n", |
| | "actions Shell\n", |
| | "{\n", |
| | "$(CP) $(>) $(<)\n", |
| | "}\n", |
| | "}\n", |
| | "}\n", |
| | "else if $(OS2)\n", |
| | "{\n", |
| | "if $(TOOLSET) = WATCOM\n", |
| | "{\n", |
| | "actions together piecemeal Archive\n", |
| | "{\n", |
| | "$(AR) $(<) +-$(>)\n", |
| | "}\n", |
| | "actions Cc\n", |
| | "{\n", |
| | "$(CC) $(CCFLAGS) $(OPTIM) /Fo=$(<) /I$(HDRS) $(>)\n", |
| | "}\n", |
| | "actions C++\n", |
| | "{\n", |
| | "$(C++) $(C++FLAGS) $(OPTIM) /Fo=$(<) /I$(HDRS) $(>)\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 $(TOOLSET) = EMX\n", |
| | "{\n", |
| | "actions together piecemeal Archive\n", |
| | "{\n", |
| | "$(AR) $(<) $(>:T)\n", |
| | "}\n", |
| | "actions Cc\n", |
| | "{\n", |
| | "$(CC) -c $(CCFLAGS) $(OPTIM) -I$(HDRS) -o$(<) $(>)\n", |
| | "}\n", |
| | "actions C++\n", |
| | "{\n", |
| | "$(C++) -c $(C++FLAGS) $(OPTIM) -I$(HDRS) -o$(<) $(>)\n", |
| | "}\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) $(OPTIM) $(SLASHINC) $(>)\n", |
| | "}\n", |
| | "actions C++\n", |
| | "{\n", |
| | "$(C++)/obj=$(<) $(C++FLAGS) $(OPTIM) $(SLASHINC) $(>)\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) $(>[1]) ,$(>[2-]) ,$(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 $(MACINC)\n", |
| | "$(CC) -o $(<) $(CCFLAGS) $(OPTIM) $(>)\n", |
| | "}\n", |
| | "actions C++\n", |
| | "{\n", |
| | "set -e MWCincludes $(MACINC)\n", |
| | "$(CC) -o $(<) $(C++FLAGS) $(OPTIM) $(>)\n", |
| | "}\n", |
| | "actions Link bind NEEDLIBS\n", |
| | "{\n", |
| | "$(LINK) -o $(<) $(LINKFLAGS) $(>) $(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 makeDirName { $(<) = [ FDirName $(>) ] ; }\n", |
| | "rule makeGristedName { $(<) = [ FGristSourceFiles $(>) ] ; }\n", |
| | "rule makeRelPath { $(<[1]) = [ FRelPath $(<[2-]) : $(>) ] ; }\n", |
| | "rule makeSuffixed { $(<[1]) = [ FAppendSuffix $(>) : $(<[2]) ] ; }\n", |
| | "{\n", |
| | "if $(JAMFILE) { include $(JAMFILE) ; }\n", |
| | "}\n", |
| | "}\n", |
| | 0 }; |
| |
|