Skip to content

HTTPS clone URL

Subversion checkout URL

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