Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 662 lines (434 sloc) 15.155 kb
3ace369 @particle #39826: [CAGE] convert C<perl -w> to C<use warnings;>
particle authored
1 #! perl
29b08db @bschmalhofer Require Perl 5.6.0, not 5.8.0, in Configure.pl.
bschmalhofer authored
2
a5b614c @bschmalhofer [config]
bschmalhofer authored
3 # Copyright (C) 2001-2008, The Perl Foundation.
a3cd162 Build enhancements. Originally to support building shared libraries, …
Gregor N. Purdy authored
4 # $Id$
11b744f @simoncozens Configure system from Brent Dax <brentdax@cpan.org>
simoncozens authored
5
dc40427 @coke [codingstd] require version in a way that avoids a complaint from per…
coke authored
6 use 5.008;
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
7 use strict;
8 use warnings;
9 use lib 'lib';
10
11 use Parrot::Configure;
12 use Parrot::Configure::Options qw( process_options );
13 use Parrot::Configure::Options::Test;
a725b2f @jkeenan Refactor preparatory code found in lib/Parrot/Configure/Options/Test.…
jkeenan authored
14 use Parrot::Configure::Options::Test::Prepare qw(
15 get_preconfiguration_tests
16 get_postconfiguration_tests
17 );
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
18 use Parrot::Configure::Messages qw(
19 print_introduction
20 print_conclusion
21 );
b65b944 @NotFound Update .parrot_current_rev in Configure if possible
NotFound authored
22 use Parrot::Revision;
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
23
24 $| = 1; # $OUTPUT_AUTOFLUSH = 1;
25
26 # Install Option text was taken from:
27 #
28 # autoconf (GNU Autoconf) 2.59
29 # Written by David J. MacKenzie and Akim Demaille.
30 #
31 # Copyright (C) 2003 Free Software Foundation, Inc.
32 # This is free software; see the source for copying conditions. There is NO
33 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
34
35 # from Parrot::Configure::Options
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
36 my ($args, $steps_list_ref) = process_options(
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
37 {
468e958 @jkeenan Check for whether $ARGV[0] to avoid uninitialized value warning when …
jkeenan authored
38 mode => (defined $ARGV[0] and $ARGV[0] =~ /^--file=/)
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
39 ? 'file'
40 : 'configure',
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
41 argv => [@ARGV],
42 }
43 );
44 exit(1) unless defined $args;
45
46 my $opttest = Parrot::Configure::Options::Test->new($args);
47
48 # configuration tests will only be run if you requested them
49 # as command-line option
a725b2f @jkeenan Refactor preparatory code found in lib/Parrot/Configure/Options/Test.…
jkeenan authored
50 $opttest->run_configure_tests( get_preconfiguration_tests() );
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
51
52 my $parrot_version = $Parrot::Configure::Options::Conf::parrot_version;
53
54 # from Parrot::Configure::Messages
55 print_introduction($parrot_version);
56
b65b944 @NotFound Update .parrot_current_rev in Configure if possible
NotFound authored
57 # Update revision number if needed
58 Parrot::Revision::update();
59
a5b614c @bschmalhofer [config]
bschmalhofer authored
60 my $conf = Parrot::Configure->new();
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
61
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
62 $conf->add_steps( @{ $steps_list_ref } );
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
63
64 # from Parrot::Configure::Data
65 $conf->options->set( %{$args} );
66
d154d3a @jkeenan Reposition one inline comment; add another.
jkeenan authored
67 # Log files created by Configure.pl in MANIFEST.configure.generated
7bb2d0e @jkeenan Applying patch submitted in
jkeenan authored
68 $conf->{active_configuration} = 1;
20990ff @moritz [config] simplification suggested by DietCoke++
moritz authored
69 unlink 'MANIFEST.configure.generated';
d154d3a @jkeenan Reposition one inline comment; add another.
jkeenan authored
70
71 # Run the actual steps from Parrot::Configure
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
72 $conf->runsteps or exit(1);
73
74 # build tests will only be run if you requested them
75 # as command-line option
a725b2f @jkeenan Refactor preparatory code found in lib/Parrot/Configure/Options/Test.…
jkeenan authored
76 $opttest->run_build_tests( get_postconfiguration_tests() );
3477cc0 @jkeenan Applying patch submitted in
jkeenan authored
77
78 my $make = $conf->data->get('make');
79 # from Parrot::Configure::Messages
80 ( print_conclusion( $conf, $make ) ) ? exit 0 : exit 1;
81
82 ################### DOCUMENTATION ###################
83
756762f *** empty log message ***
Michael Scott authored
84 =head1 NAME
54d55b6 Patch from Nicholas Clark <nick@unfortu.net>: stops silly people
Josh Wilmes authored
85
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
86 Configure.pl - Parrot's configuration script
a3cd162 Build enhancements. Originally to support building shared libraries, …
Gregor N. Purdy authored
87
756762f *** empty log message ***
Michael Scott authored
88 =head1 SYNOPSIS
a3cd162 Build enhancements. Originally to support building shared libraries, …
Gregor N. Purdy authored
89
756762f *** empty log message ***
Michael Scott authored
90 % perl Configure.pl [options]
6d36c2d bunch of patches:
Leopold Toetsch authored
91
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
92 or:
93
94 % perl Configure.pl --file=/path/to/configuration/directives
95
756762f *** empty log message ***
Michael Scott authored
96 =head1 DESCRIPTION
a3cd162 Build enhancements. Originally to support building shared libraries, …
Gregor N. Purdy authored
97
d10b19e @petdance Perl programs are programs, not scripts
petdance authored
98 This is Parrot's configuration program. It should be run to create
99 the necessary system-specific files before building Parrot.
b4b718e Update configuration system documentation (based on patches provided …
Michael Scott authored
100
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
101 We now offer two interfaces to configuration:
102
103 =over 4
104
105 =item * Command-Line Interface
c15d8e5 Added 'reconfig' make target and corresponding --reconfig option to
Gregor N. Purdy authored
106
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
107 All configuration options are placed on the command-line. You may request
108 interactive configuration with the C<--ask> option. You may not use the
109 C<--file> option, as that is reserved for the Configuration-File interface.
c15d8e5 Added 'reconfig' make target and corresponding --reconfig option to
Gregor N. Purdy authored
110
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
111 =item * Configuration-File Interface
112
113 All configuration options are placed in a special configuration file whose
114 full path is invoked on the command-line as
115 C<--file=/path/to/configuration/directives> as the sole command-line option.
116 You may not request interactive configuration. For specific instructions, see
117 L</"CONFIGURATION-FILE INTERFACE"> below.
118
119 =back
120
121 =head2 General Options
122
123 =over 4
ad4983c add --optimize Configure option
Leopold Toetsch authored
124
756762f *** empty log message ***
Michael Scott authored
125 =item C<--help>
205f653 @brentdax Win32 compatibility, Configure hints, 5.005 compatibility, MANIFEST c…
brentdax authored
126
756762f *** empty log message ***
Michael Scott authored
127 Prints out a description of the options and exits.
ad4983c add --optimize Configure option
Leopold Toetsch authored
128
756762f *** empty log message ***
Michael Scott authored
129 =item C<--version>
0fc6ac6 @brentdax Configure.pl 2.0.
brentdax authored
130
756762f *** empty log message ***
Michael Scott authored
131 Prints out the version number of Configure.pl and exits.
c0142c7 memory allocation rework
Dan Sugalski authored
132
756762f *** empty log message ***
Michael Scott authored
133 =item C<--verbose>
c0142c7 memory allocation rework
Dan Sugalski authored
134
6f5b538 @jhoblitt podtidy configure files
jhoblitt authored
135 Tells Configure.pl to output extra information about the configuration data it
136 is setting.
c15d8e5 Added 'reconfig' make target and corresponding --reconfig option to
Gregor N. Purdy authored
137
ab81b8c @brentdax Configure output cleanup. Retasks --verbose to include the old outpu…
brentdax authored
138 =item C<--verbose=2>
139
dacbc40 ICU config patch - use systems ICU
Leopold Toetsch authored
140 Tells Configure.pl to output information about i<every> setting added or
ab81b8c @brentdax Configure output cleanup. Retasks --verbose to include the old outpu…
brentdax authored
141 changed.
142
d79c782 @jkeenan Applying patch submitted in
jkeenan authored
143 =item C<--verbose-step={N|regex}>
567c2b1 new Configure options: verbose-step
Leopold Toetsch authored
144
d79c782 @jkeenan Applying patch submitted in
jkeenan authored
145 Run C<--verbose=2> for step number C<N> or matching description.
567c2b1 new Configure options: verbose-step
Leopold Toetsch authored
146
a5e7643 @jkeenan Committing patch submitted for RT 45523 and 45525. Add --fatal and
jkeenan authored
147 =item C<--fatal>
148
149 Tells Configure.pl to halt completely if any configuration step fails.
150
151 =item C<--fatal-step={init::alpha,inter::beta,auto::gamma}>
152
153 Tells Configure.pl to halt completely if any configuration step in
154 comma-delimited string individually fails.
155
756762f *** empty log message ***
Michael Scott authored
156 =item C<--nomanicheck>
85a1fcc reenable debugging=1 default
Leopold Toetsch authored
157
756762f *** empty log message ***
Michael Scott authored
158 Tells Configure.pl not to run the MANIFEST check.
11b744f @simoncozens Configure system from Brent Dax <brentdax@cpan.org>
simoncozens authored
159
20fed4c Add a --prefix argument to Configure.pl to set the installation prefix
Nicholas Clark authored
160 =item C<--prefix>
161
162 Sets the location where parrot will be installed.
163
3af6759 @particle [config]: add --languages='list of languages' option to allow (re)gen…
particle authored
164 =item C<--languages="list of languages">
165
166 Specify a list of languages to process (space separated.)
167 Used in combination with C<--step=gen::languages> to regenerate makefiles.
3070bbb @tewk [Config] added --step runs a single step
tewk authored
168
b4b718e Update configuration system documentation (based on patches provided …
Michael Scott authored
169 =item C<--ask>
de4d079 Add conditional configurations for testy code.
Melvin Smith authored
170
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
171 This turns on the user prompts during configuraion. Available only in
172 Command-Line interface. Not available in Configuration-File interface.
6fba438 @simoncozens Abstract the argument and opcode packing types and functions out into
simoncozens authored
173
84c64a2 @jkeenan Applying to trunk patch submitted in RT 42690. particle requested a …
jkeenan authored
174 =item C<--test>
175
176 Run certain tests along with F<Configure.pl>:
177
178 =over 4
179
180 =item C<--test=configure>
181
182 Run tests found in F<t/configure/> I<before> beginning configuration. These
183 tests demonstrate that Parrot's configuration tools will work properly once
184 configuration has begun.
185
186 =item C<--test=build>
187
188 Run tests found in F<t/postconfigure/>, F<t/tools/pmc2cutils/>,
189 F<t/tools/ops2cutils/> and F<t/tools/ops2pmutils/> I<after> configuration has
190 completed. These tests demonstrate (a) that certain of Parrot's configuration
191 tools are working properly post-configuration; and (b) that certain of
192 Parrot's build tools will work properly once you call F<make>.
193
194 =item C<--test>
195
196 Run the tests described in C<--test=configure>, conduct configuration, then
197 run the tests described in C<--test=build>.
198
199 =back
200
756762f *** empty log message ***
Michael Scott authored
201 =back
a3cd162 Build enhancements. Originally to support building shared libraries, …
Gregor N. Purdy authored
202
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
203 =head2 Compile Options
9d000b4 Made the changes to figure out mask bits for various register and stack
Dan Sugalski authored
204
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
205 =over 4
19fa0d4 @tomhughes Stop Configure trying to make op_info.c and op.h as op_info.c no longer
tomhughes authored
206
756762f *** empty log message ***
Michael Scott authored
207 =item C<--debugging=0>
bc2ee1d @brentdax Minor cleanup and enhancements.
brentdax authored
208
756762f *** empty log message ***
Michael Scott authored
209 Debugging is turned on by default. Use this to disable it.
9d000b4 Made the changes to figure out mask bits for various register and stack
Dan Sugalski authored
210
82a8718 @particle config: add --parrot_is_shared option to docs
particle authored
211 =item C<--parrot_is_shared>
212
213 Link parrot dynamically.
214
2ddc05f [config] New Configure.pl option --m=32
Leopold Toetsch authored
215 =item C<--m=32>
216
fe05e8a @ambs Some enhancements on linelength.t
ambs authored
217 Create a 32-bit executable on 64-architectures like x86_64. This
218 option appends -m32 to compiler and linker programs and does
219 s/lib64/lib/g on link flags.
2ddc05f [config] New Configure.pl option --m=32
Leopold Toetsch authored
220
221 This option is experimental. See F<config/init/defaults.pm> for more.
222
62c60b6 really speed up oo1.pasm by 2
Leopold Toetsch authored
223 =item C<--profile>
224
225 Turn on profiled compile (gcc only for now)
226
efd9dcb @paultcochrane Added --cage option. Part of patch (#39802) courtesy of Kevin Tew
paultcochrane authored
227 =item C<--cage>
228
229 [CAGE] compile includes many additional warnings
230
756762f *** empty log message ***
Michael Scott authored
231 =item C<--optimize>
9d000b4 Made the changes to figure out mask bits for various register and stack
Dan Sugalski authored
232
2fc8aec @bschmalhofer This patch makes it easier to compile parrot with a compiler other than
bschmalhofer authored
233 Add perl5's $Config{optimize} to the compiler flags.
234
235 =item C<--optimize=flags>
236
237 Add C<flags> to the compiler flags.
756762f *** empty log message ***
Michael Scott authored
238
239 =item C<--inline>
240
241 Tell Configure that the compiler supports C<inline>.
242
243 =item C<--cc=(compiler)>
244
245 Specify which compiler to use.
246
247 =item C<--ccflags=(flags)>
248
249 Use the given compiler flags.
250
251 =item C<--ccwarn=(flags)>
252
253 Use the given compiler warning flags.
254
c528c23 The following patch enables the user to control which compilers get
Leopold Toetsch authored
255 =item C<--cxx=(compiler)>
256
257 Specify which C++ compiler to use (for ICU).
258
756762f *** empty log message ***
Michael Scott authored
259 =item C<--libs=(libs)>
260
261 Use the given libraries.
262
263 =item C<--link=(linker)>
264
265 Specify which linker to use.
266
267 =item C<--linkflags=(flags)>
268
269 Use the given linker flags
270
271 =item C<--ld=(linker)>
272
273 Specify which loader to use for shared libraries.
274
275 =item C<--ldflags=(flags)>
276
277 Use the given loader flags for shared libraries
278
279 =item C<--lex=(lexer)>
280
281 Specify which lexer to use.
282
283 =item C<--yacc=(parser)>
284
285 Specify which parser to use.
0846288 various patches 2
Leopold Toetsch authored
286
b4b718e Update configuration system documentation (based on patches provided …
Michael Scott authored
287 =item C<--define=val1[,val2]>
288
6f5b538 @jhoblitt podtidy configure files
jhoblitt authored
289 Generate "#define PARROT_DEF_VAL1 1" ... entries in has_header.h. Currently
290 needed to use inet_aton for systems that lack inet_pton:
b4b718e Update configuration system documentation (based on patches provided …
Michael Scott authored
291
292 --define=inet_aton
293
294 =back
295
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
296 =head2 Parrot Options
b4b718e Update configuration system documentation (based on patches provided …
Michael Scott authored
297
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
298 =over 4
b4b718e Update configuration system documentation (based on patches provided …
Michael Scott authored
299
756762f *** empty log message ***
Michael Scott authored
300 =item C<--intval=(type)>
301
302 Use the given type for C<INTVAL>.
303
304 =item C<--floatval=(type)>
305
306 Use the given type for C<FLOATVAL>.
307
308 =item C<--opcode=(type)>
309
310 Use the given type for opcodes.
311
312 =item C<--ops=(files)>
313
314 Use the given ops files.
315
316 =item C<--pmc=(files)>
bc2ee1d @brentdax Minor cleanup and enhancements.
brentdax authored
317
756762f *** empty log message ***
Michael Scott authored
318 Use the given PMC files.
319
320 =item C<--cgoto=0>
321
322 Don't build cgoto core. This is recommended when you are short of memory.
323
324 =item C<--jitcapable>
325
326 Use JIT system.
327
328 =item C<--execcapable>
329
0846288 various patches 2
Leopold Toetsch authored
330 Use JIT to emit a native executable.
756762f *** empty log message ***
Michael Scott authored
331
332 =item C<--gc=(type)>
333
6f5b538 @jhoblitt podtidy configure files
jhoblitt authored
334 Determine the type of garbage collection. The value for C<type> should be one
335 of: C<gc>, C<libc>, C<malloc> or C<malloc-trace>. The default is C<gc>.
756762f *** empty log message ***
Michael Scott authored
336
5a9e89c [PATCH] runConfigureICU usage
Leopold Toetsch authored
337 =back
338
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
339 =head2 International Components For Unicode (ICU) Options
5a9e89c [PATCH] runConfigureICU usage
Leopold Toetsch authored
340
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
341 =over 4
5a9e89c [PATCH] runConfigureICU usage
Leopold Toetsch authored
342
acf4fa4 autodetect and use system icu installations
Jens Rieks authored
343 =item C<--icu-config=/path/to/icu-config>
344
73ba72d [perl #36057] [PATCH] Fix some typos - 5
Leopold Toetsch authored
345 Use the specified icu-config script to determine the necessary ICU options.
acf4fa4 autodetect and use system icu installations
Jens Rieks authored
346
6f5b538 @jhoblitt podtidy configure files
jhoblitt authored
347 Use --icu-config=none to disable the autodetect feature. Parrot will then be
348 build without ICU.
acf4fa4 autodetect and use system icu installations
Jens Rieks authored
349
6f5b538 @jhoblitt podtidy configure files
jhoblitt authored
350 B<Note:> If you specify another ICU option than --icu-config, the autodetection
351 functionality will be disabled.
a194975 - removed error message if icu-config does not exists
Jens Rieks authored
352
dacbc40 ICU config patch - use systems ICU
Leopold Toetsch authored
353 =item C<--icushared=(linkeroption)>
354
5ec035c Config cleanup - icu
Leopold Toetsch authored
355 Linker command to link against ICU library.
dacbc40 ICU config patch - use systems ICU
Leopold Toetsch authored
356
357 E.g.
358
359 --icushared='-L /opt/openoffice/program -licudata -licuuc'
360
361 (The libs in openoffice are actually version 2.2 and do not work)
362
363 =item C<--icuheaders=(header_dir)>
364
6f5b538 @jhoblitt podtidy configure files
jhoblitt authored
365 Location of ICU header files without the /unicode suffix.
dacbc40 ICU config patch - use systems ICU
Leopold Toetsch authored
366
367 E.g.
368
369 --icuheaders='/home/lt/icu/'
370
756762f *** empty log message ***
Michael Scott authored
371 =back
372
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
373 =head2 Other Options
205f653 @brentdax Win32 compatibility, Configure hints, 5.005 compatibility, MANIFEST c…
brentdax authored
374
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
375 =over 4
a3cd162 Build enhancements. Originally to support building shared libraries, …
Gregor N. Purdy authored
376
b4b718e Update configuration system documentation (based on patches provided …
Michael Scott authored
377 =item C<--maintainer>
43a606a This patch allows parrot to mostly-build with tcc. It allows one to …
Dan Sugalski authored
378
6f5b538 @jhoblitt podtidy configure files
jhoblitt authored
379 Use this option if you want imcc's parser and lexer files to be generated.
380 Needs a working parser and lexer.
9d000b4 Made the changes to figure out mask bits for various register and stack
Dan Sugalski authored
381
b4b718e Update configuration system documentation (based on patches provided …
Michael Scott authored
382 =item C<--miniparrot>
43a606a This patch allows parrot to mostly-build with tcc. It allows one to …
Dan Sugalski authored
383
b4b718e Update configuration system documentation (based on patches provided …
Michael Scott authored
384 Build parrot assuming only pure ANSI C is available.
43a606a This patch allows parrot to mostly-build with tcc. It allows one to …
Dan Sugalski authored
385
0fc6ac6 @brentdax Configure.pl 2.0.
brentdax authored
386 =back
a3cd162 Build enhancements. Originally to support building shared libraries, …
Gregor N. Purdy authored
387
780cbd7 @jkeenan Merge newsc branch into trunk, implementing Configuration-File interf…
jkeenan authored
388 =head1 CONFIGURATION-FILE INTERFACE
389
390 In the Configuration-File interface, unlike the Command-Line interface, you
391 may delete configuration steps or run them in an order different from that
392 listed in Parrot::Configure::Step::List.
393
394 A configuration file is a plain-text file located somewhere in or under your
395 top-level Parrot directory. Unless indicated otherwise, all lines in this
396 file must have no leading whitespace. As in Perl 5, lines beginning with C<#>
397 marks are comments and are ignored during parsing of the file. Unlike Perl 5,
398 you may not begin comments in the middle of a line.
399
400 The configuration file must contain these three sections:
401
402 =over 4
403
404 =item * variables
405
406 =over 4
407
408 =item *
409
410 Section begins with line C<=variables> and must be followed by at least one
411 blank line. All other content in this section is optional.
412
413 =item *
414
415 Section may contain one or more I<key=value> pairs which assign strings to
416 variables much in the way that you would do in a shell script wrapping around
417 F<Configure.pl>.
418
419 =variables
420
421 CC=/usr/bin/gcc
422 CX=/usr/bin/g++
423
424 So if you typically invoked F<Configure.pl> by wrapping it in a shell script
425 for the purpose of setting environmental variables used in options, like this:
426
427 CC="/usr/bin/gcc"
428 CX="/usr/bin/g++"
429 /usr/local/bin/perl Configure.pl \
430 --cc="$CC" \
431 --cxx="$CX" \
432 --link="$CX" \
433 --ld="$CX"
434
435 ... you would now place the assignments to C<CC> and C<CX> in the
436 I<=variables> section of the configuration file (as above).
437
438 =back
439
440 =item * general
441
442 =over 4
443
444 =item *
445
446 Section begins with line C<=general> and must be followed by at least one
447 blank line. All other content in this section is optional.
448
449 =item *
450
451 This section is the location recommended for listing options whose impact is
452 not conceptually limited to a single step. It is also the location where the
453 variables defined in the I<=variables> section are assigned to particular
454 Parrot configuration options. Entries in this section must be either
455 I<option=value> pairs or be options which will be assigned a true value.
456
457 cc=$CC
458 cxx=$CX
459 link=$CX
460 ld=/usr/bin/g++
461 verbose
462
463 Note that when the value is a variable defined in the I<=variables> section,
464 it must be preceded by a C<$> sign.
465
466 =item *
467
468 You I<may> list options here which are I<conceptually> limited to a single
469 configuration step. For example, if you wished to skip validation of the
470 F<MANIFEST> during configuration and to configure without ICU, you I<could>,
471 in this section, say:
472
473 nomanicheck
474 without-icu
475
476 However, as we shall quickly see, it's conceptually clearer to place these
477 values next to those configuration steps that actually use them.
478
479 =back
480
481 =item * steps
482
483 =over 4
484
485 =item *
486
487 Section begins with line C<=steps> and must be followed by at least one
488 blank line, in turn followed by the list of configuration steps, followed by
489 another blank line followed by a line C<=cut> (just like POD).
490
491 =item *
492
493 The order in which you list the steps is the order in which they will be
494 executed. If you delete a step from the canonical list or comment a step out,
495 it will not be executed.
496
497 ...
498 auto::snprintf
499 # auto::perldoc
500 auto::ctags
501 ...
502
503 In the above example, step C<auto::perldoc> will be completely skipped. You
504 will not see it listed as C<....skipped> in F<Configure.pl>'s output; it will
505 simply not be there at all.
506
507 =item *
508
509 This is the recommended location to call options whose impact is
510 I<conceptually> limited to a single configuration step. Type the
511 configuration step's name, type a whitespace, type the option (with no leading
512 C<-->) and repeat as needed for additional step-specific options.
513
514 init::manifest nomanicheck
515 ...
516
517 =item *
518
519 This is also the location to call options whose impact is limited to one step
520 at a time but which may be applied to more than one configuration step. The
521 C<fatal-step> and C<verbose-step> options are the best examples of this case.
522 Rather than requesting verbose output from all configuration steps, you may,
523 for example, wish to designate only a few steps for verbose output:
524
525 ...
526 init::hints verbose-step
527 init::headers
528 inter::progs fatal-step
529 ...
530 auto::gcc verbose-step
531 ...
532
533 In the above example, F<Configure.pl> will grind to a halt if C<inter::progs>
534 does not complete successfully. You will get verbose output only from
535 C<init::hints> and C<auto::gcc>; the other 60+ steps will be terse.
536
537 =item *
538
539 Nothing prevents you from listing general options anywhere in this section.
540
541 init::manifest nomanicheck cc=$CC ld=/usr/bin/g++ verbose
542 init::defaults
543 ...
544
545 That will work -- but why would you want to do something that messy?
546
547 =back
548
549 =back
550
551 =head2 Example
552
553 Ignoring leading whitespace, this is an example of a correctly formed
554 configuration file.
555
556 =variables
557
558 CC=/usr/bin/gcc
559 CX=/usr/bin/g++
560
561 =general
562
563 cc=$CC
564 cxx=$CX
565 link=$CX
566 ld=/usr/bin/g++
567
568 =steps
569
570 init::manifest nomanicheck
571 init::defaults
572 init::install
573 init::miniparrot
574 init::hints verbose-step
575 init::headers
576 inter::progs
577 inter::make
578 inter::lex
579 inter::yacc
580 auto::gcc
581 auto::glibc
582 auto::backtrace
583 auto::fink
584 auto::macports
585 auto::msvc
586 auto::attributes
587 auto::warnings
588 init::optimize
589 inter::shlibs
590 inter::libparrot
591 inter::charset
592 inter::encoding
593 inter::types
594 auto::ops
595 auto::pmc
596 auto::alignptrs
597 auto::headers
598 auto::sizes
599 auto::byteorder
600 auto::va_ptr
601 auto::format
602 auto::isreg
603 auto::arch
604 auto::jit
605 auto::cpu
606 auto::funcptr
607 auto::cgoto
608 auto::inline
609 auto::gc
610 auto::memalign
611 auto::signal
612 auto::socklen_t
613 auto::env
614 auto::aio
615 auto::gmp
616 auto::readline
617 auto::gdbm
618 auto::pcre
619 auto::opengl
620 auto::crypto
621 auto::gettext
622 auto::snprintf
623 # auto::perldoc
624 auto::ctags
625 auto::revision
626 auto::icu
627 gen::config_h
628 gen::core_pmcs
629 gen::crypto
630 gen::parrot_include
631 gen::opengl
632 gen::call_list
633 gen::languages
634 gen::makefiles
635 gen::platform
636 gen::config_pm
637
638 =cut
639
640 You may see how this works in practice by calling:
641
642 perl Configure.pl --file=xconf/samples/yourfoobar
643
644 or
645
646 perl Configure.pl --file=xconf/samples/testfoobar
647
c9264be more config system add ons and docs
Leopold Toetsch authored
648 =head1 SEE ALSO
649
e478ac7 @jkeenan Merge fileconf branch into trunk per
jkeenan authored
650 F<lib/Parrot/Configure.pm>,
c9264be more config system add ons and docs
Leopold Toetsch authored
651 F<lib/Parrot/Configure/Step.pm>, F<docs/configuration.pod>
652
756762f *** empty log message ***
Michael Scott authored
653 =cut
aeeafc5 @brentdax Mention where all the files went.
brentdax authored
654
b91d268 @bschmalhofer #40278: [CAGE] perl coding standards coda.
bschmalhofer authored
655 # Local Variables:
656 # mode: cperl
657 # cperl-indent-level: 4
658 # fill-column: 100
659 # End:
660 # vim: expandtab shiftwidth=4:
25830bb @jkeenan Applying patch submitted in
jkeenan authored
661
Something went wrong with that request. Please try again.