From f53a2777abe8cf8d28be33b29b0edc5c67cb3673 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Thu, 4 Jul 2002 14:09:12 +0000 Subject: [PATCH] Not sure why, but this is out-of-sync with HEAD [SVN r14299] --- src/engine/jambase.c | 158 ++++++++++++++++++++++++++++++++----------- 1 file changed, 118 insertions(+), 40 deletions(-) diff --git a/src/engine/jambase.c b/src/engine/jambase.c index 30b6de83d..ec9f3f6a6 100644 --- a/src/engine/jambase.c +++ b/src/engine/jambase.c @@ -1,19 +1,89 @@ /* Generated by mkjambase from Jambase */ char *jambase[] = { /* Jambase */ -"if $(BOOST_ROOT)\n", +"if $(NT)\n", "{\n", -"BOOST_BUILD_PATH ?= $(BOOST_ROOT)/tools/build ;\n", +"SLASH ?= \\\\ ;\n", "}\n", -"if $(BOOST_BUILD_PATH)\n", +"SLASH ?= / ;\n", +"rule find-to-root ( dir : patterns + )\n", "{\n", -"JAMBASE ?= boost-build.jam ;\n", +"local globs = [ GLOB $(dir) : $(patterns) ] ;\n", +"while ! $(globs) && $(dir:P) != $(dir)\n", +"{\n", +"dir = $(dir:P) ;\n", +"globs = [ GLOB $(dir) : $(patterns) ] ;\n", "}\n", -"if $(JAMBASE)\n", +"return $(globs) ;\n", +"}\n", +".boost-build-file = ;\n", +".bootstrap-file = ;\n", +"BOOST_BUILD_PATH.user-value = $(BOOST_BUILD_PATH) ;\n", +"rule boost-build ( dir ? )\n", "{\n", -"JAMBASE = $(JAMBASE:G=jam-module) ; # puts the Jambase target in a different\n", -"SEARCH on $(JAMBASE) = $(JAMBASE_PATH) $(BOOST_BUILD_PATH) ;\n", -"include $(JAMBASE) ;\n", +"if $(.bootstrap-file)\n", +"{\n", +"EXIT \"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", +"local bootstrap-file =\n", +"[ 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", +"include $(.bootstrap-file) ;\n", +"}\n", +"if [ 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 boost-build-files =\n", +"[ find-to-root [ PWD ] : 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 \"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", +"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", @@ -27,6 +97,7 @@ char *jambase[] = { "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", @@ -43,17 +114,22 @@ char *jambase[] = { "if $(BCCROOT)\n", "{\n", "TOOLSET = BORLANDC ;\n", -"BORLANDC = $(BCCROOT) ;\n", +"BORLANDC = $(BCCROOT:J=\" \") ;\n", "}\n", "else if $(MSVC)\n", "{\n", "TOOLSET = VISUALC16 ;\n", -"VISUALC16 = $(MSVC) ;\n", +"VISUALC16 = $(MSVC:J=\" \") ;\n", "}\n", "else if $(MSVCNT)\n", "{\n", "TOOLSET = VISUALC ;\n", -"VISUALC = $(MSVCNT) ;\n", +"VISUALC = $(MSVCNT:J=\" \") ;\n", +"}\n", +"else if $(MSVCDir)\n", +"{\n", +"TOOLSET = VISUALC ;\n", +"VISUALC = $(MSVCDir:J=\" \") ;\n", "}\n", "else if $(MINGW)\n", "{\n", @@ -61,8 +137,12 @@ char *jambase[] = { "}\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 \"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", @@ -82,16 +162,6 @@ char *jambase[] = { "ECHO ;\n", "ECHO \" e.g.: set VISUALC=C:\\\\Visual6\" ;\n", "ECHO \" set JAM_TOOLSET=VISUALC\" ;\n", -"ECHO ;\n", -"ECHO \" - if your toolset's installation path contains spaces, surround\" ;\n", -"ECHO \" it with TWO SETS of quotes:\" ;\n", -"ECHO ;\n", -"ECHO \" e.g.: set VISUALC=\\\"\\\"C:\\\\Program Files\\\\Microsoft Visual C++\\\\VC98\\\"\\\"\" ;\n", -"ECHO ;\n", -"ECHO \" The outer quotes will prevent Jam from splitting its elements,\" ;\n", -"ECHO \" and the inner quotes will keep the path as a single argument on\" ;\n", -"ECHO \" the build command line.\" ;\n", -"ECHO ;\n", "EXIT ;\n", "}\n", "}\n", @@ -249,6 +319,7 @@ char *jambase[] = { "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", @@ -264,7 +335,7 @@ char *jambase[] = { "{\n", "if $(watcom)\n", "{\n", -"WATCOM = $(watcom) ;\n", +"WATCOM = $(watcom:J=\" \") ;\n", "TOOLSET = WATCOM ;\n", "}\n", "else\n", @@ -450,15 +521,14 @@ char *jambase[] = { "LINKLIBS ?= -lbsd ;\n", "case AMIGA :\n", "CC ?= gcc ;\n", -"YACC ?= bison ;\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 ;\n", +"YACC ?= \"bison -y\" ;\n", "case DGUX :\n", "RANLIB ?= \"\" ;\n", "RELOCATE ?= true ;\n", @@ -469,7 +539,6 @@ char *jambase[] = { "RANLIB ?= \"\" ;\n", "case INTERIX :\n", "CC ?= gcc ;\n", -"JAMSHELL ?= sh -c ;\n", "RANLIB ?= \"\" ;\n", "case IRIX :\n", "RANLIB ?= \"\" ;\n", @@ -523,6 +592,8 @@ char *jambase[] = { "CCFLAGS ?= ;\n", "C++FLAGS ?= $(CCFLAGS) ;\n", "CHMOD ?= chmod ;\n", +"CHGRP ?= chgrp ;\n", +"CHOWN ?= chown ;\n", "LEX ?= lex ;\n", "LINKFLAGS ?= $(CCFLAGS) ;\n", "LINKLIBS ?= ;\n", @@ -550,6 +621,7 @@ char *jambase[] = { "FORTRAN ?= f77 ;\n", "FORTRANFLAGS ?= ;\n", "HDRS ?= ;\n", +"INSTALLGRIST ?= installed ;\n", "JAMFILE ?= Jamfile ;\n", "JAMRULES ?= Jamrules ;\n", "LEX ?= ;\n", @@ -706,21 +778,27 @@ char *jambase[] = { "rule InstallInto\n", "{\n", "local i t ;\n", -"t = $(>:G=installed) ;\n", -"DEPENDS install : $(t) ;\n", -"DEPENDS $(t) : $(>) ;\n", +"t = $(>:G=$(INSTALLGRIST)) ;\n", +"Depends install : $(t) ;\n", +"Clean uninstall : $(t) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "MakeLocate $(t) : $(<) ;\n", -"Clean uninstall : $(t) ;\n", "for i in $(>)\n", "{\n", -"Install $(i:G=installed) : $(i) ;\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", -"Chmod $(t) ;\n", -"if $(UNIX)\n", -"{\n", -"if $(OWNER) { Chown $(t) ; OWNER on $(t) = $(OWNER) ; }\n", -"if $(GROUP) { Chgrp $(t) ; GROUP on $(t) = $(GROUP) ; }\n", "}\n", "}\n", "rule InstallBin\n", @@ -1219,7 +1297,7 @@ char *jambase[] = { "}\n", "actions Chgrp\n", "{\n", -"chgrp $(GROUP) $(<)\n", +"$(CHGRP) $(GROUP) $(<)\n", "}\n", "actions Chmod1\n", "{\n", @@ -1227,7 +1305,7 @@ char *jambase[] = { "}\n", "actions Chown\n", "{\n", -"chown $(OWNER) $(<)\n", +"$(CHOWN) $(OWNER) $(<)\n", "}\n", "actions piecemeal together existing Clean\n", "{\n",