• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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