Skip to content

Commit 93dc13f

Browse files
committed
Re-work the build and bootstrap process to fit the new role of the setting. Since it'll be the outer lexical scope of programs, it needs to be built like the rest of the various bootstrapped bits, not just sa if it's a module.
1 parent d36ca9c commit 93dc13f

File tree

3 files changed

+1129
-334
lines changed

3 files changed

+1129
-334
lines changed

build/Makefile.in

Lines changed: 46 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (C) 2006-2009, The Perl Foundation.
1+
# Copyright (C) 2006-2011, The Perl Foundation.
22
# $Id$
33

44
PARROT_ARGS =
@@ -86,11 +86,20 @@ NQP_SOURCES = \
8686
src/NQP/Compiler.pir \
8787
src/cheats/nqp-builtins.pir \
8888

89+
CORE_SETTING_SOURCES = \
90+
src/core/NativeTypes.pm \
91+
src/core/NQPMu.pm \
92+
src/core/IO.pm \
93+
src/core/Regex.pm \
94+
95+
CORE_SETTING_NQP = NQPCORE.setting
96+
8997
STAGE0_SOURCES = \
9098
src/stage0/Regex-s0.pir \
9199
src/stage0/HLL-s0.pir \
92100
src/stage0/P6Regex-s0.pir \
93-
src/stage0/NQP-s0.pir
101+
src/stage0/NQP-s0.pir \
102+
src/stage0/NQPCORE.setting-s0.pir \
94103

95104
STAGE0 = src/stage0
96105
STAGE1 = src/stage1
@@ -102,7 +111,7 @@ HLL_PBC = HLL.pbc
102111
HLLGRAMMAR_G = gen/hllgrammar-grammar.pir
103112
HLLGRAMMAR_A = gen/hllgrammar-actions.pir
104113

105-
HLLCOMPILER_PIR = gen/hllcompiler.pir
114+
HLLCOMPILER_PIR = gen/hllcompiler.pir
106115
HLLCOMMANDLINE_PIR = gen/hllcommandline.pir
107116

108117
P6REGEX_PBC = P6Regex.pbc
@@ -121,10 +130,13 @@ NQP_A = gen/nqp-actions.pir
121130
NQP_C = gen/nqp-compiler.pir
122131
NQP_EXE = nqp$(EXE)
123132

124-
STAGE0_PBCS = $(STAGE0)/$(HLL_PBC) $(STAGE0)/$(P6REGEX_PBC) $(STAGE0)/$(NQP_PBC) $(STAGE0)/$(REGEX_PBC)
125-
STAGE1_PBCS = $(STAGE1)/$(HLL_PBC) $(STAGE1)/$(P6REGEX_PBC) $(STAGE1)/$(NQP_PBC) $(REGEX_PBC)
126-
STAGE2_PBCS = $(STAGE2)/$(HLL_PBC) $(STAGE2)/$(P6REGEX_PBC) $(STAGE2)/$(NQP_PBC) $(REGEX_PBC)
127-
ALL_PBCS = $(HLL_PBC) $(P6REGEX_PBC) $(NQP_PBC)
133+
CORE_SETTING_PBC = NQPCORE.setting.pbc
134+
CORE_SETTING_PIR = gen/NQPCORE.setting.pir
135+
136+
STAGE0_PBCS = $(STAGE0)/$(HLL_PBC) $(STAGE0)/$(P6REGEX_PBC) $(STAGE0)/$(NQP_PBC) $(STAGE0)/$(REGEX_PBC) $(STAGE0)/$(CORE_SETTING_PBC)
137+
STAGE1_PBCS = $(STAGE1)/$(HLL_PBC) $(STAGE1)/$(P6REGEX_PBC) $(STAGE1)/$(NQP_PBC) $(REGEX_PBC) $(STAGE1)/$(CORE_SETTING_PBC)
138+
STAGE2_PBCS = $(STAGE2)/$(HLL_PBC) $(STAGE2)/$(P6REGEX_PBC) $(STAGE2)/$(NQP_PBC) $(REGEX_PBC) $(STAGE2)/$(CORE_SETTING_PBC)
139+
ALL_PBCS = $(HLL_PBC) $(P6REGEX_PBC) $(NQP_PBC) $(CORE_SETTING_PBC)
128140

129141
GROUP = nqp_group
130142
OPS = nqp_ops
@@ -163,14 +175,6 @@ HOW_SOURCES = src/metamodel/how/KnowHOWAttribute.pm src/metamodel/how/NQPClassH
163175

164176
HOW_COMBINED = src/gen/how.pm
165177

166-
CORE_SETTING_SOURCES = src/core/NativeTypes.pm src/core/NQPMu.pm src/core/IO.pm \
167-
src/core/Regex.pm
168-
169-
CORE_SETTING_NQP = src/gen/CORE.setting
170-
CORE_SETTING_PIR = src/gen/CORE.setting.pir
171-
CORE_SETTING_PBC = CORE.setting.pbc
172-
173-
174178
CLEANUPS = \
175179
*.manifest \
176180
*.pdb \
@@ -208,14 +212,15 @@ CLEANUPS = \
208212
$(OPS_DIR)/*$(LOAD_EXT) \
209213
$(DYNEXT_DIR)/*$(LOAD_EXT) \
210214

211-
all: $(NQP_EXE) $(CORE_SETTING_PBC)
215+
all: $(NQP_EXE)
212216

213217
install: all
214-
$(MKPATH) $(DESTDIR)$(NQP_LANG_DIR)
215-
$(CP) nqp.pbc $(DESTDIR)$(NQP_LANG_DIR)/nqprx.pbc
218+
$(MKPATH) $(DESTDIR)$(NQP_LANG_DIR)
219+
$(CP) nqp.pbc $(DESTDIR)$(NQP_LANG_DIR)/nqprx.pbc
216220
$(CP) $(P6REGEX_PBC) $(DESTDIR)$(PARROT_LIBRARY_DIR)/$(P6REGEX_PBC)
217221
$(CP) $(REGEX_PBC) $(DESTDIR)$(PARROT_LIBRARY_DIR)/$(REGEX_PBC)
218222
$(CP) $(HLL_PBC) $(DESTDIR)$(PARROT_LIBRARY_DIR)/$(HLL_PBC)
223+
$(CP) $(CORE_SETTING_PBC) $(DESTDIR)$(PARROT_LIBRARY_DIR)/$(CORE_SETTING_PBC)
219224
$(MKPATH) $(DESTDIR)$(PARROT_BIN_DIR)
220225
$(CP) $(NQP_EXE) $(DESTDIR)$(PARROT_BIN_DIR)/nqp$(EXE)
221226
$(CHMOD) 755 $(DESTDIR)$(PARROT_BIN_DIR)/nqp$(EXE)
@@ -232,10 +237,11 @@ $(REGEX_PBC): $(DYNEXT_TARGET) $(REGEX_SOURCES)
232237
$(STAGE0): $(STAGE0_PBCS)
233238

234239
$(STAGE0_PBCS): $(DYNEXT_TARGET) $(STAGE0_SOURCES)
235-
$(PARROT) -o $(STAGE0)/$(REGEX_PBC) src/stage0/Regex-s0.pir
236-
$(PARROT) -o $(STAGE0)/$(HLL_PBC) src/stage0/HLL-s0.pir
237-
$(PARROT) -o $(STAGE0)/$(P6REGEX_PBC) src/stage0/P6Regex-s0.pir
238-
$(PARROT) -o $(STAGE0)/$(NQP_PBC) src/stage0/NQP-s0.pir
240+
$(PARROT) -o $(STAGE0)/$(REGEX_PBC) src/stage0/Regex-s0.pir
241+
$(PARROT) -o $(STAGE0)/$(HLL_PBC) src/stage0/HLL-s0.pir
242+
$(PARROT) -o $(STAGE0)/$(P6REGEX_PBC) src/stage0/P6Regex-s0.pir
243+
$(PARROT) -o $(STAGE0)/$(NQP_PBC) src/stage0/NQP-s0.pir
244+
$(PARROT) -o $(STAGE0)/$(CORE_SETTING_PBC) src/stage0/NQPCORE.setting-s0.pir
239245

240246
$(STAGE1): $(STAGE1_PBCS)
241247

@@ -290,6 +296,14 @@ $(STAGE1)/$(NQP_PBC): $(STAGE0_PBCS) $(NQP_SOURCES) $(HOW_COMBINED)
290296
$(PARROT) --include=$(STAGE1) -o $(STAGE1)/$(NQP_PBC) \
291297
src/NQP/Compiler.pir
292298

299+
$(STAGE1)/$(CORE_SETTING_PBC): $(STAGE0_PBCS) $(CORE_SETTING_SOURCES)
300+
$(MKPATH) $(STAGE1)/gen
301+
$(PERL) build/gen_setting.pl $(CORE_SETTING_SOURCES) > $(STAGE1)/$(CORE_SETTING_NQP)
302+
$(PARROT) --library=$(STAGE0) $(STAGE0)/$(NQP_PBC) \
303+
--target=pir --output=$(STAGE1)/$(CORE_SETTING_PIR) \
304+
$(STAGE1)/$(CORE_SETTING_NQP)
305+
$(PARROT) -o $(STAGE1)/$(CORE_SETTING_PBC) $(STAGE1)/$(CORE_SETTING_PIR)
306+
293307
$(STAGE2): $(STAGE2_PBCS)
294308

295309
$(STAGE2)/$(HLL_PBC): $(STAGE1_PBCS) $(HLL_SOURCES)
@@ -340,21 +354,23 @@ $(STAGE2)/$(NQP_PBC): $(STAGE1_PBCS) $(NQP_SOURCES) $(HOW_COMBINED)
340354
$(PARROT) --include=$(STAGE2) -o $(STAGE2)/$(NQP_PBC) \
341355
src/NQP/Compiler.pir
342356

357+
$(STAGE2)/$(CORE_SETTING_PBC): $(STAGE1_PBCS) $(CORE_SETTING_SOURCES)
358+
$(MKPATH) $(STAGE2)/gen
359+
$(PERL) build/gen_setting.pl $(CORE_SETTING_SOURCES) > $(STAGE2)/$(CORE_SETTING_NQP)
360+
$(PARROT) --library=$(STAGE1) $(STAGE1)/$(NQP_PBC) \
361+
--target=pir --output=$(STAGE2)/$(CORE_SETTING_PIR) \
362+
--setting=NULL $(STAGE2)/$(CORE_SETTING_NQP)
363+
$(PARROT) -o $(STAGE2)/$(CORE_SETTING_PBC) $(STAGE2)/$(CORE_SETTING_PIR)
364+
343365
$(ALL_PBCS): $(REGEX_PBC) $(STAGE2_PBCS)
344366
$(CP) $(STAGE2)/$(HLL_PBC) .
345367
$(CP) $(STAGE2)/$(P6REGEX_PBC) .
346368
$(CP) $(STAGE2)/$(NQP_PBC) .
369+
$(CP) $(STAGE2)/$(CORE_SETTING_PBC) .
347370

348371
$(NQP_EXE): $(NQP_PBC)
349372
$(PBC_TO_EXE) $(NQP_PBC)
350373

351-
$(CORE_SETTING_NQP): $(CORE_SETTING_SOURCES)
352-
$(PERL) build/gen_setting.pl $(CORE_SETTING_SOURCES) > $(CORE_SETTING_NQP)
353-
$(CORE_SETTING_PIR): $(CORE_SETTING_NQP) $(NQP_PBC)
354-
$(PARROT) $(NQP_PBC) --setting=NULL --target=pir --output=$(CORE_SETTING_PIR) $(CORE_SETTING_NQP)
355-
$(CORE_SETTING_PBC): $(CORE_SETTING_PIR)
356-
$(PARROT) -o $(CORE_SETTING_PBC) $(CORE_SETTING_PIR)
357-
358374
$(DYNEXT_TARGET): $(DYNPMC) $(DYNOPS)
359375
$(CP) $(DYNPMC) $(DYNEXT_DIR)
360376
$(CP) $(DYNOPS) $(DYNEXT_DIR)
@@ -388,7 +404,7 @@ bootstrap-files: $(STAGE2_PBCS) $(CORE_SETTING_NQP)
388404
$(PERL) build/gen_bootstrap.pl src/HLL.pir >src/stage0/HLL-s0.pir
389405
$(PERL) build/gen_bootstrap.pl src/Regex/P6Regex.pir >src/stage0/P6Regex-s0.pir
390406
$(PERL) build/gen_bootstrap.pl src/NQP/Compiler.pir >src/stage0/NQP-s0.pir
391-
$(PERL) build/gen_bootstrap.pl $(CORE_SETTING_NQP) >src/stage0/CORE.setting
407+
$(PERL) build/gen_bootstrap.pl src/stage2/gen/$(CORE_SETTING_PIR) >src/stage0/NQPCORE.setting-s0.pir
392408

393409

394410
## testing

0 commit comments

Comments
 (0)