1$ ! Copyright 2002-2003 Rene Rivera, Johan Nilsson. 2$ ! 3$ ! 8-APR-2004 Boris Gubenko 4$ ! Miscellaneous improvements. 5$ ! 6$ ! 20-JAN-2015 Artur Shepilko 7$ ! Adapt for jam 3.1.19 8$ ! 9$ ! Distributed under the Boost Software License, Version 1.0. 10$ ! (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 11$ ! 12$ ! bootstrap build script for Jam 13$ ! 14$ THIS_FACILITY = "BUILDJAM" 15$ 16$ verify = f$trnlnm("VERIFY_''THIS_FACILITY'") 17$ save_verify = f$verify(verify) 18$ 19$ SAY := WRITE SYS$OUTPUT 20$ ! 21$ ON WARNING THEN CONTINUE 22$ ON ERROR THEN GOTO EXIT 23$ 24$ BOOST_JAM_TOOLSET = "vmsdecc" 25$ BOOST_JAM_CC = "CC" 26$ BJAM_UPDATE = "" 27$ 28$ ARGS = F$EDIT("''p1' ''p2' ''p3' ''p4'","TRIM,LOWERCASE") 29$ ARGS_LEN = F$LENGTH(ARGS) 30$ 31$ IF F$LOCATE("--update", ARGS) .NE. F$LENGTH(ARGS) THEN BJAM_UPDATE = "update" 32$ IF BJAM_UPDATE .EQS. "update" - 33 .AND. F$SEARCH("[.bootstrap_vms]jam0.exe") .EQS. "" THEN BJAM_UPDATE = "" 34$ 35$ IF BJAM_UPDATE .NES. "update" 36$ THEN 37$ GOSUB CLEAN 38$ 39$ SAY "I|Creating bootstrap directory..." 40$ CREATE /DIR [.bootstrap_vms] 41$ 42$ !------------------ 43$ ! NOTE: Assume jamgram and jambase have been generated (true for fresh release). 44$ ! Otherwise these need to be re-generated manually. 45$ !------------------ 46$ 47$ SAY "I|Building bootstrap jam..." 48$ ! 49$ CC_FLAGS = "/DEFINE=VMS /STANDARD=VAXC " + - 50 "/PREFIX_LIBRARY_ENTRIES=(ALL_ENTRIES) " + - 51 "/WARNING=DISABLE=(LONGEXTERN)" + - 52 "/OBJ=[.bootstrap_vms] " 53$ 54$ CC_INCLUDE="" 55$ 56$ SAY "I|Using compile flags: ", CC_FLAGS 57$ 58$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE command.c 59$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE compile.c 60$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE constants.c 61$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE debug.c 62$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE execcmd.c 63$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE frames.c 64$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE function.c 65$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE glob.c 66$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE hash.c 67$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE hdrmacro.c 68$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE headers.c 69$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE jam.c 70$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE jambase.c 71$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE jamgram.c 72$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE lists.c 73$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE make.c 74$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE make1.c 75$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE object.c 76$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE option.c 77$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE output.c 78$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE parse.c 79$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE pathsys.c 80$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE regexp.c 81$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE rules.c 82$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE scan.c 83$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE search.c 84$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE subst.c 85$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE timestamp.c 86$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE variable.c 87$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE modules.c 88$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE strings.c 89$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE filesys.c 90$ 91$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE execvms.c 92$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE pathvms.c 93$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE filevms.c 94$ 95$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE builtins.c 96$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE class.c 97$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE cwd.c 98$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE native.c 99$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE md5.c 100$ 101$ CC_INCLUDE = "/INCLUDE=(""./modules"")" 102$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE [.modules]set.c 103$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE [.modules]path.c 104$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE [.modules]regex.c 105$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE [.modules]property-set.c 106$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE [.modules]sequence.c 107$ 'BOOST_JAM_CC' 'CC_FLAGS 'CC_INCLUDE [.modules]order.c 108$ 109$ LIB /CREATE [.bootstrap_vms]jam0.olb [.bootstrap_vms]*.obj 110$ LINK /EXEC=[.bootstrap_vms]jam0.exe - 111 [.bootstrap_vms]jam0.olb/INCLUDE=JAM/LIB 112$ 113$ IF F$SEARCH("[.bootstrap_vms]*.obj") .NES. "" THEN - 114 DELETE /NOCONF /NOLOG [.bootstrap_vms]*.obj;*, *.olb;* 115$ ENDIF 116$ 117$ IF F$SEARCH("[.bootstrap_vms]jam0.exe") .NES. "" 118$ THEN 119$ IF BJAM_UPDATE .NES. "update" 120$ THEN 121$ SAY "I|Cleaning previous build..." 122$ MCR [.bootstrap_vms]jam0.exe -f build.jam --toolset='BOOST_JAM_TOOLSET' 'ARGS' clean 123$ ENDIF 124$ 125$ SAY "I|Building Boost.Jam..." 126$ MCR [.bootstrap_vms]jam0.exe -f build.jam --toolset='BOOST_JAM_TOOLSET' 'ARGS' 127$ ENDIF 128$ 129$ 130$EXIT: 131$ sts = $STATUS 132$ exit 'sts' + (0 * f$verify(save_verify)) 133 134 135$CLEAN: !GOSUB 136$ ! 137$ IF F$SEARCH("[.bootstrap_vms]*.*") .NES. "" 138$ THEN 139$ SAY "I|Cleaning previous bootstrap files..." 140$ ! 141$ SET FILE /PROT=(W:RWED) [.bootstrap_vms]*.*;* 142$ DELETE /NOCONF /NOLOG [.bootstrap_vms]*.*;* 143$ ENDIF 144$ ! 145$ IF F$SEARCH("bootstrap_vms.dir") .NES. "" 146$ THEN 147$ SAY "I|Removing previous bootstrap directory..." 148$ ! 149$ SET FILE /PROT=(W:RWED) bootstrap_vms.dir 150$ DELETE /NOCONF /NOLOG bootstrap_vms.dir; 151$ ENDIF 152$ ! 153$ RETURN 154