Skip to content
This repository
Newer
Older
100644 705 lines (461 sloc) 16.655 kb
3ace369a »
2006-07-24 #39826: [CAGE] convert C<perl -w> to C<use warnings;>
1 #! perl
29b08dbc »
2006-04-23 Require Perl 5.6.0, not 5.8.0, in Configure.pl.
2
110c52f2 »
2009-03-31 [build] Add a --disable-rpath option to allow Linux packagers to build
3 # Copyright (C) 2001-2009, Parrot Foundation.
11b744f3 »
2001-09-11 Configure system from Brent Dax <brentdax@cpan.org>
4
dc404276 »
2008-07-14 [codingstd] require version in a way that avoids a complaint from per…
5 use 5.008;
3477cc06 »
2008-01-08 Applying patch submitted in
6 use strict;
7 use warnings;
8 use lib 'lib';
9
10 use Parrot::Configure;
11 use Parrot::Configure::Options qw( process_options );
12 use Parrot::Configure::Options::Test;
a725b2fc »
2008-04-19 Refactor preparatory code found in lib/Parrot/Configure/Options/Test.…
13 use Parrot::Configure::Options::Test::Prepare qw(
14 get_preconfiguration_tests
15 get_postconfiguration_tests
16 );
3477cc06 »
2008-01-08 Applying patch submitted in
17 use Parrot::Configure::Messages qw(
18 print_introduction
19 print_conclusion
20 );
b65b944f »
2008-07-15 Update .parrot_current_rev in Configure if possible
21 use Parrot::Revision;
3477cc06 »
2008-01-08 Applying patch submitted in
22
23 $| = 1; # $OUTPUT_AUTOFLUSH = 1;
24
25 # Install Option text was taken from:
26 #
27 # autoconf (GNU Autoconf) 2.59
28 # Written by David J. MacKenzie and Akim Demaille.
29 #
30 # Copyright (C) 2003 Free Software Foundation, Inc.
31 # This is free software; see the source for copying conditions. There is NO
32 # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
33
34 # from Parrot::Configure::Options
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
35 my ($args, $steps_list_ref) = process_options(
3477cc06 »
2008-01-08 Applying patch submitted in
36 {
468e9585 »
2008-08-30 Check for whether $ARGV[0] to avoid uninitialized value warning when …
37 mode => (defined $ARGV[0] and $ARGV[0] =~ /^--file=/)
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
38 ? 'file'
39 : 'configure',
3477cc06 »
2008-01-08 Applying patch submitted in
40 argv => [@ARGV],
41 }
42 );
43 exit(1) unless defined $args;
44
be71d13a »
2012-09-17 [GH #833] preload configure steps
45 # preload all steps for debugging because some Windows systems cannot
46 # do "b postpone stepname"
c4de4b43 »
2012-09-17 [GH #833] preload only when debugging perl via -d
47 if (defined &DB::DB) {
48 for my $step_name (@{ $steps_list_ref } ) {
9f58d2fe »
2012-09-24 [codingstd] tabs in Configure.PL
49 eval "use $step_name;"; ## no critic (BuiltinFunctions::ProhibitStringyEval)
50 die $@ if $@;
c4de4b43 »
2012-09-17 [GH #833] preload only when debugging perl via -d
51 }
be71d13a »
2012-09-17 [GH #833] preload configure steps
52 }
53
3477cc06 »
2008-01-08 Applying patch submitted in
54 my $opttest = Parrot::Configure::Options::Test->new($args);
55
56 # configuration tests will only be run if you requested them
57 # as command-line option
a725b2fc »
2008-04-19 Refactor preparatory code found in lib/Parrot/Configure/Options/Test.…
58 $opttest->run_configure_tests( get_preconfiguration_tests() );
3477cc06 »
2008-01-08 Applying patch submitted in
59
60 my $parrot_version = $Parrot::Configure::Options::Conf::parrot_version;
61
62 # from Parrot::Configure::Messages
46c84060 »
2010-12-30 Implement option of fully silent configuration.
63 print_introduction($parrot_version)
64 unless $args->{silent};
3477cc06 »
2008-01-08 Applying patch submitted in
65
b65b944f »
2008-07-15 Update .parrot_current_rev in Configure if possible
66 # Update revision number if needed
67 Parrot::Revision::update();
68
a5b614c0 »
2008-02-10 [config]
69 my $conf = Parrot::Configure->new();
3477cc06 »
2008-01-08 Applying patch submitted in
70
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
71 $conf->add_steps( @{ $steps_list_ref } );
3477cc06 »
2008-01-08 Applying patch submitted in
72
73 # from Parrot::Configure::Data
74 $conf->options->set( %{$args} );
8963c6e5 »
2009-02-08 [config] Enable make reconfig. RT #58034
75 # save the command-line for make reconfig
766efa78 »
2011-05-05 Minor code reformatting.
76 $conf->data->set(configure_args => @ARGV
77 ? '"'.join("\" \"", map {qq($_)} @ARGV).'"'
78 : '');
3477cc06 »
2008-01-08 Applying patch submitted in
79
2be29e88 »
2012-12-21 [GH #890] Generate MANIFEST.generate, remove MANIFEST_configure.gener…
80 # Log files created by Configure.pl in MANIFEST.generated
7bb2d0eb »
2008-04-05 Applying patch submitted in
81 $conf->{active_configuration} = 1;
06933e51 »
2013-01-07 [GH #910] make -s clean at perl Configure.pl to ensure fresh install
82
83 # Create a fresh MANIFEST for make install
2be29e88 »
2012-12-21 [GH #890] Generate MANIFEST.generate, remove MANIFEST_configure.gener…
84 unlink 'MANIFEST.generated';
06933e51 »
2013-01-07 [GH #910] make -s clean at perl Configure.pl to ensure fresh install
85 if (do 'lib/Parrot/Config/Generated.pm') {
86 my $make = $Parrot::Config::Generated::PConfig{make};
87 if ($make and -f 'Makefile') {
264d34e2 »
2013-01-07 [GH #910] make clean on linux|darwin even without lib/Parrot/Config/G…
88 $Parrot::Config::Generated::PConfig{gmake_version}
89 ? system ($make, '-s', 'clean') : system ($make, 'clean');
06933e51 »
2013-01-07 [GH #910] make -s clean at perl Configure.pl to ensure fresh install
90 }
91 }
264d34e2 »
2013-01-07 [GH #910] make clean on linux|darwin even without lib/Parrot/Config/G…
92 elsif (-f 'Makefile' and $^O =~ /(linux|darwin)/) {
93 system ('make', '-s', 'clean');
94 }
d154d3a8 »
2008-08-03 Reposition one inline comment; add another.
95
96 # Run the actual steps from Parrot::Configure
3477cc06 »
2008-01-08 Applying patch submitted in
97 $conf->runsteps or exit(1);
98
99 # build tests will only be run if you requested them
100 # as command-line option
a725b2fc »
2008-04-19 Refactor preparatory code found in lib/Parrot/Configure/Options/Test.…
101 $opttest->run_build_tests( get_postconfiguration_tests() );
3477cc06 »
2008-01-08 Applying patch submitted in
102
103 my $make = $conf->data->get('make');
104 # from Parrot::Configure::Messages
46c84060 »
2010-12-30 Implement option of fully silent configuration.
105 ( print_conclusion( $conf, $make, $args ) ) ? exit 0 : exit 1;
3477cc06 »
2008-01-08 Applying patch submitted in
106
107 ################### DOCUMENTATION ###################
108
756762f9 »
2004-01-20 *** empty log message ***
109 =head1 NAME
54d55b6c »
2002-03-16 Patch from Nicholas Clark <nick@unfortu.net>: stops silly people
110
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
111 Configure.pl - Parrot's configuration script
a3cd1626 »
2001-12-30 Build enhancements. Originally to support building shared libraries, …
112
756762f9 »
2004-01-20 *** empty log message ***
113 =head1 SYNOPSIS
a3cd1626 »
2001-12-30 Build enhancements. Originally to support building shared libraries, …
114
756762f9 »
2004-01-20 *** empty log message ***
115 % perl Configure.pl [options]
6d36c2d4 »
2003-10-28 bunch of patches:
116
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
117 or:
118
119 % perl Configure.pl --file=/path/to/configuration/directives
120
756762f9 »
2004-01-20 *** empty log message ***
121 =head1 DESCRIPTION
a3cd1626 »
2001-12-30 Build enhancements. Originally to support building shared libraries, …
122
d10b19ef »
2006-07-17 Perl programs are programs, not scripts
123 This is Parrot's configuration program. It should be run to create
124 the necessary system-specific files before building Parrot.
b4b718e4 »
2004-03-07 Update configuration system documentation (based on patches provided …
125
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
126 We now offer two interfaces to configuration:
127
128 =over 4
129
130 =item * Command-Line Interface
c15d8e54 »
2002-01-08 Added 'reconfig' make target and corresponding --reconfig option to
131
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
132 All configuration options are placed on the command-line. You may request
133 interactive configuration with the C<--ask> option. You may not use the
134 C<--file> option, as that is reserved for the Configuration-File interface.
c15d8e54 »
2002-01-08 Added 'reconfig' make target and corresponding --reconfig option to
135
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
136 =item * Configuration-File Interface
137
138 All configuration options are placed in a special configuration file whose
139 full path is invoked on the command-line as
140 C<--file=/path/to/configuration/directives> as the sole command-line option.
141 You may not request interactive configuration. For specific instructions, see
142 L</"CONFIGURATION-FILE INTERFACE"> below.
143
144 =back
145
146 =head2 General Options
147
148 =over 4
ad4983ce »
2003-01-04 add --optimize Configure option
149
756762f9 »
2004-01-20 *** empty log message ***
150 =item C<--help>
205f6530 »
2001-09-16 Win32 compatibility, Configure hints, 5.005 compatibility, MANIFEST c…
151
756762f9 »
2004-01-20 *** empty log message ***
152 Prints out a description of the options and exits.
ad4983ce »
2003-01-04 add --optimize Configure option
153
756762f9 »
2004-01-20 *** empty log message ***
154 =item C<--version>
0fc6ac68 »
2002-05-24 Configure.pl 2.0.
155
756762f9 »
2004-01-20 *** empty log message ***
156 Prints out the version number of Configure.pl and exits.
c0142c7e »
2002-10-05 memory allocation rework
157
756762f9 »
2004-01-20 *** empty log message ***
158 =item C<--verbose>
c0142c7e »
2002-10-05 memory allocation rework
159
6f5b5384 »
2006-01-02 podtidy configure files
160 Tells Configure.pl to output extra information about the configuration data it
161 is setting.
c15d8e54 »
2002-01-08 Added 'reconfig' make target and corresponding --reconfig option to
162
ab81b8c2 »
2004-03-06 Configure output cleanup. Retasks --verbose to include the old output…
163 =item C<--verbose=2>
164
dacbc406 »
2004-04-21 ICU config patch - use systems ICU
165 Tells Configure.pl to output information about i<every> setting added or
ab81b8c2 »
2004-03-06 Configure output cleanup. Retasks --verbose to include the old output…
166 changed.
167
d79c7826 »
2007-08-25 Applying patch submitted in
168 =item C<--verbose-step={N|regex}>
567c2b1b »
2004-04-25 new Configure options: verbose-step
169
d79c7826 »
2007-08-25 Applying patch submitted in
170 Run C<--verbose=2> for step number C<N> or matching description.
567c2b1b »
2004-04-25 new Configure options: verbose-step
171
a5e76432 »
2007-10-20 Committing patch submitted for RT 45523 and 45525. Add --fatal and
172 =item C<--fatal>
173
174 Tells Configure.pl to halt completely if any configuration step fails.
175
176 =item C<--fatal-step={init::alpha,inter::beta,auto::gamma}>
177
178 Tells Configure.pl to halt completely if any configuration step in
179 comma-delimited string individually fails.
180
756762f9 »
2004-01-20 *** empty log message ***
181 =item C<--nomanicheck>
85a1fcca »
2003-09-25 reenable debugging=1 default
182
756762f9 »
2004-01-20 *** empty log message ***
183 Tells Configure.pl not to run the MANIFEST check.
11b744f3 »
2001-09-11 Configure system from Brent Dax <brentdax@cpan.org>
184
20fed4ce »
2004-10-02 Add a --prefix argument to Configure.pl to set the installation prefix
185 =item C<--prefix>
186
187 Sets the location where parrot will be installed.
188
b4b718e4 »
2004-03-07 Update configuration system documentation (based on patches provided …
189 =item C<--ask>
de4d0796 »
2002-05-16 Add conditional configurations for testy code.
190
570f6d47 »
2008-12-17 Remove configuration probe for asynchronous input/output per architec…
191 This turns on the user prompts during configuration. Available only in
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
192 Command-Line interface. Not available in Configuration-File interface.
6fba4381 »
2001-09-22 Abstract the argument and opcode packing types and functions out into
193
84c64a29 »
2007-05-12 Applying to trunk patch submitted in RT 42690. particle requested a '…
194 =item C<--test>
195
196 Run certain tests along with F<Configure.pl>:
197
198 =over 4
199
200 =item C<--test=configure>
201
202 Run tests found in F<t/configure/> I<before> beginning configuration. These
203 tests demonstrate that Parrot's configuration tools will work properly once
204 configuration has begun.
205
206 =item C<--test=build>
207
272ac526 »
2010-01-23 Some prerequisites for successful operation of buildtools_tests are n…
208 Run tests found in F<t/steps/>, F<t/postconfigure/> and F<t/pharness>.
84c64a29 »
2007-05-12 Applying to trunk patch submitted in RT 42690. particle requested a '…
209
210 =item C<--test>
211
212 Run the tests described in C<--test=configure>, conduct configuration, then
213 run the tests described in C<--test=build>.
214
215 =back
216
52494c20 »
2009-07-21 Merge darwin2hints branch into trunk. Functionality for detecting Fin…
217 =item C<--configure_trace>
218
219 Store the results of each configuration step in a Storable F<.sto> file on
220 disk, for later analysis by F<Parrot::Configure::Trace> methods.
221
d3bdc792 »
2010-12-18 Add documentation for quickcover; link to Devel-Cover.
222 =item C<--coveragedir>
223
1bb6425e »
2010-12-31 Changed cover to fullcover and quickcover to cover
224 In preparation for calling C<make cover> to perform coverage analysis,
d3bdc792 »
2010-12-18 Add documentation for quickcover; link to Devel-Cover.
225 provide a user-specified directory for top level of HTML output.
226
52494c20 »
2009-07-21 Merge darwin2hints branch into trunk. Functionality for detecting Fin…
227 =item Operating system-specific configuration options
228
229 =over 4
230
bc26b63e »
2010-02-04 Make the used hints file overridable on the Configure.pl command line.
231 =item C<--hintsfile=filename>
232
233 Use filename as the hints file.
234
52494c20 »
2009-07-21 Merge darwin2hints branch into trunk. Functionality for detecting Fin…
235 =item C<--darwin_no_fink>
236
237 On Darwin, do not probe for Fink libraries.
238
239 =item C<--darwin_no_macports>
240
241 On Darwin, do not probe for Macports libraries.
242
243 =back
244
756762f9 »
2004-01-20 *** empty log message ***
245 =back
a3cd1626 »
2001-12-30 Build enhancements. Originally to support building shared libraries, …
246
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
247 =head2 Compile Options
9d000b4e »
2001-10-12 Made the changes to figure out mask bits for various register and stack
248
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
249 =over 4
19fa0d49 »
2001-10-14 Stop Configure trying to make op_info.c and op.h as op_info.c no longer
250
756762f9 »
2004-01-20 *** empty log message ***
251 =item C<--debugging=0>
bc2ee1df »
2002-03-05 Minor cleanup and enhancements.
252
756762f9 »
2004-01-20 *** empty log message ***
253 Debugging is turned on by default. Use this to disable it.
9d000b4e »
2001-10-12 Made the changes to figure out mask bits for various register and stack
254
82a87188 »
2006-01-05 config: add --parrot_is_shared option to docs
255 =item C<--parrot_is_shared>
256
257 Link parrot dynamically.
258
2ddc05f4 »
2006-07-27 [config] New Configure.pl option --m=32
259 =item C<--m=32>
260
fe05e8a2 »
2006-08-20 Some enhancements on linelength.t
261 Create a 32-bit executable on 64-architectures like x86_64. This
fb5eae84 »
2009-11-08 POD formatting corrections only.
262 option appends C<-m32> to compiler and linker programs and does
263 C<s/lib64/lib/g> on link flags.
2ddc05f4 »
2006-07-27 [config] New Configure.pl option --m=32
264
265 This option is experimental. See F<config/init/defaults.pm> for more.
266
62c60b68 »
2004-03-05 really speed up oo1.pasm by 2
267 =item C<--profile>
268
269 Turn on profiled compile (gcc only for now)
270
efd9dcb6 »
2006-12-19 Added --cage option. Part of patch (#39802) courtesy of Kevin Tew
271 =item C<--cage>
272
273 [CAGE] compile includes many additional warnings
274
756762f9 »
2004-01-20 *** empty log message ***
275 =item C<--optimize>
9d000b4e »
2001-10-12 Made the changes to figure out mask bits for various register and stack
276
fb5eae84 »
2009-11-08 POD formatting corrections only.
277 Add Perl 5's C<$Config{optimize}> to the compiler flags.
2fc8aec2 »
2005-09-14 This patch makes it easier to compile parrot with a compiler other than
278
279 =item C<--optimize=flags>
280
281 Add C<flags> to the compiler flags.
756762f9 »
2004-01-20 *** empty log message ***
282
283 =item C<--inline>
284
285 Tell Configure that the compiler supports C<inline>.
286
287 =item C<--cc=(compiler)>
288
5792dcec »
2011-03-30 Add entry for '--cxx' to help.
289 Specify which C compiler to use.
290
291 =item C<--cxx=(compiler)>
292
293 Specify which C++ compiler to use.
756762f9 »
2004-01-20 *** empty log message ***
294
295 =item C<--ccflags=(flags)>
296
297 Use the given compiler flags.
298
299 =item C<--ccwarn=(flags)>
300
301 Use the given compiler warning flags.
302
303 =item C<--libs=(libs)>
304
305 Use the given libraries.
306
307 =item C<--link=(linker)>
308
309 Specify which linker to use.
310
311 =item C<--linkflags=(flags)>
312
313 Use the given linker flags
314
d716b343 »
2010-10-04 add --ar and --arflags options to Configure.pl
315 =item C<--ar=(archiver)>
316
317 Specify which librarian to use for static libraries
318
319 =item C<--arflags=(flags)>
320
321 Use the given librarian flags for static libraris
322
756762f9 »
2004-01-20 *** empty log message ***
323 =item C<--ld=(linker)>
324
325 Specify which loader to use for shared libraries.
326
327 =item C<--ldflags=(flags)>
328
329 Use the given loader flags for shared libraries
330
110c52f2 »
2009-03-31 [build] Add a --disable-rpath option to allow Linux packagers to build
331 =item C<--disable-rpath>
332
333 Specify that rpath should not be included in linking flags. With this
334 configuration option, you must append the library build directory
335 (usually blib/lib) to the LD_LIBRARY_PATH environment variable (or your
336 platform equivalent). This option is primarily used for building Linux
337 packages.
338
756762f9 »
2004-01-20 *** empty log message ***
339 =item C<--lex=(lexer)>
340
341 Specify which lexer to use.
342
343 =item C<--yacc=(parser)>
344
345 Specify which parser to use.
08462887 »
2004-02-28 various patches 2
346
b4b718e4 »
2004-03-07 Update configuration system documentation (based on patches provided …
347 =item C<--define=val1[,val2]>
348
6f5b5384 »
2006-01-02 podtidy configure files
349 Generate "#define PARROT_DEF_VAL1 1" ... entries in has_header.h. Currently
350 needed to use inet_aton for systems that lack inet_pton:
b4b718e4 »
2004-03-07 Update configuration system documentation (based on patches provided …
351
352 --define=inet_aton
353
a4c21ab8 »
2009-04-30 Applying patch supplied by bsdz in https://trac.parrot.org/parrot/tic…
354 =item C<--no-line-directives>
355
356 Disables the creation of C #line directives when generating C from PMCs and
357 ops. Useful when debugging internals.
3b2baf45 »
2009-05-01 Remove trailing whitespace
358
b4b718e4 »
2004-03-07 Update configuration system documentation (based on patches provided …
359 =back
360
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
361 =head2 Parrot Options
b4b718e4 »
2004-03-07 Update configuration system documentation (based on patches provided …
362
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
363 =over 4
b4b718e4 »
2004-03-07 Update configuration system documentation (based on patches provided …
364
756762f9 »
2004-01-20 *** empty log message ***
365 =item C<--intval=(type)>
366
367 Use the given type for C<INTVAL>.
368
369 =item C<--floatval=(type)>
370
371 Use the given type for C<FLOATVAL>.
372
373 =item C<--opcode=(type)>
374
375 Use the given type for opcodes.
376
377 =item C<--ops=(files)>
378
379 Use the given ops files.
380
5a9e89ce »
2004-04-21 [PATCH] runConfigureICU usage
381 =back
382
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
383 =head2 International Components For Unicode (ICU) Options
5a9e89ce »
2004-04-21 [PATCH] runConfigureICU usage
384
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
385 =over 4
5a9e89ce »
2004-04-21 [PATCH] runConfigureICU usage
386
acf4fa4e »
2004-09-29 autodetect and use system icu installations
387 =item C<--icu-config=/path/to/icu-config>
388
73ba72d1 »
2005-06-01 [perl #36057] [PATCH] Fix some typos - 5
389 Use the specified icu-config script to determine the necessary ICU options.
acf4fa4e »
2004-09-29 autodetect and use system icu installations
390
6f5b5384 »
2006-01-02 podtidy configure files
391 Use --icu-config=none to disable the autodetect feature. Parrot will then be
392 build without ICU.
acf4fa4e »
2004-09-29 autodetect and use system icu installations
393
6f5b5384 »
2006-01-02 podtidy configure files
394 B<Note:> If you specify another ICU option than --icu-config, the autodetection
395 functionality will be disabled.
a1949756 »
2004-09-30 - removed error message if icu-config does not exists
396
dacbc406 »
2004-04-21 ICU config patch - use systems ICU
397 =item C<--icushared=(linkeroption)>
398
5ec035c7 »
2005-12-14 Config cleanup - icu
399 Linker command to link against ICU library.
dacbc406 »
2004-04-21 ICU config patch - use systems ICU
400
401 E.g.
402
403 --icushared='-L /opt/openoffice/program -licudata -licuuc'
404
405 (The libs in openoffice are actually version 2.2 and do not work)
406
407 =item C<--icuheaders=(header_dir)>
408
6f5b5384 »
2006-01-02 podtidy configure files
409 Location of ICU header files without the /unicode suffix.
dacbc406 »
2004-04-21 ICU config patch - use systems ICU
410
411 E.g.
412
413 --icuheaders='/home/lt/icu/'
414
756762f9 »
2004-01-20 *** empty log message ***
415 =back
416
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
417 =head2 Other Options
205f6530 »
2001-09-16 Win32 compatibility, Configure hints, 5.005 compatibility, MANIFEST c…
418
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
419 =over 4
a3cd1626 »
2001-12-30 Build enhancements. Originally to support building shared libraries, …
420
b4b718e4 »
2004-03-07 Update configuration system documentation (based on patches provided …
421 =item C<--maintainer>
43a606a2 »
2002-01-30 This patch allows parrot to mostly-build with tcc. It allows one to skip
422
6f5b5384 »
2006-01-02 podtidy configure files
423 Use this option if you want imcc's parser and lexer files to be generated.
424 Needs a working parser and lexer.
9d000b4e »
2001-10-12 Made the changes to figure out mask bits for various register and stack
425
370a4184 »
2011-04-17 Introduce --with-llvm option to explicitly link to LLVM
426 =item C<--with-llvm>
427
428 Use this option if you have a recent version of LLVM installed and wish Parrot
429 to link to it.
430
0fc6ac68 »
2002-05-24 Configure.pl 2.0.
431 =back
a3cd1626 »
2001-12-30 Build enhancements. Originally to support building shared libraries, …
432
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
433 =head1 CONFIGURATION-FILE INTERFACE
434
435 In the Configuration-File interface, unlike the Command-Line interface, you
436 may delete configuration steps or run them in an order different from that
437 listed in Parrot::Configure::Step::List.
438
439 A configuration file is a plain-text file located somewhere in or under your
440 top-level Parrot directory. Unless indicated otherwise, all lines in this
441 file must have no leading whitespace. As in Perl 5, lines beginning with C<#>
442 marks are comments and are ignored during parsing of the file. Unlike Perl 5,
443 you may not begin comments in the middle of a line.
444
445 The configuration file must contain these three sections:
446
447 =over 4
448
449 =item * variables
450
451 =over 4
452
453 =item *
454
455 Section begins with line C<=variables> and must be followed by at least one
456 blank line. All other content in this section is optional.
457
458 =item *
459
460 Section may contain one or more I<key=value> pairs which assign strings to
461 variables much in the way that you would do in a shell script wrapping around
462 F<Configure.pl>.
463
464 =variables
465
466 CC=/usr/bin/gcc
467 CX=/usr/bin/g++
468
469 So if you typically invoked F<Configure.pl> by wrapping it in a shell script
470 for the purpose of setting environmental variables used in options, like this:
471
472 CC="/usr/bin/gcc"
473 CX="/usr/bin/g++"
474 /usr/local/bin/perl Configure.pl \
475 --cc="$CC" \
476 --link="$CX" \
477 --ld="$CX"
478
479 ... you would now place the assignments to C<CC> and C<CX> in the
480 I<=variables> section of the configuration file (as above).
481
96917801 »
2011-12-20 Modify documentation re file-based configuration to respond to proble…
482 In addition, should you wish to use an option whose value contains whitespace
f7cc9f9a »
2011-12-27 [configure] Provide an additional pattern by which an entry in the 'g…
483 and would, if presented on the command-line, require quoting, you may
96917801 »
2011-12-20 Modify documentation re file-based configuration to respond to proble…
484 assign that string to a variable and then use the variable in the C<general>
485 section below.
486
487 LONGLONG=long long
488
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
489 =back
490
491 =item * general
492
493 =over 4
494
495 =item *
496
497 Section begins with line C<=general> and must be followed by at least one
498 blank line. All other content in this section is optional.
499
500 =item *
501
502 This section is the location recommended for listing options whose impact is
503 not conceptually limited to a single step. It is also the location where the
504 variables defined in the I<=variables> section are assigned to particular
505 Parrot configuration options. Entries in this section must be either
506 I<option=value> pairs or be options which will be assigned a true value.
507
508 cc=$CC
509 link=$CX
510 ld=/usr/bin/g++
511 verbose
512
513 Note that when the value is a variable defined in the I<=variables> section,
514 it must be preceded by a C<$> sign.
515
96917801 »
2011-12-20 Modify documentation re file-based configuration to respond to proble…
516 intval=$LONGLONG
517
f7cc9f9a »
2011-12-27 [configure] Provide an additional pattern by which an entry in the 'g…
518 Alternatively, if assignment of a value to an option on the command-line would
519 require quoting due to the presence of whitespace in the value, you may assign
520 it to a value in the I<=general> section by double-quoting the value.
521
522 intval="long long"
523
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
524 =item *
525
526 You I<may> list options here which are I<conceptually> limited to a single
527 configuration step. For example, if you wished to skip validation of the
528 F<MANIFEST> during configuration and to configure without ICU, you I<could>,
529 in this section, say:
530
531 nomanicheck
532 without-icu
533
534 However, as we shall quickly see, it's conceptually clearer to place these
535 values next to those configuration steps that actually use them.
536
537 =back
538
539 =item * steps
540
541 =over 4
542
543 =item *
544
545 Section begins with line C<=steps> and must be followed by at least one
546 blank line, in turn followed by the list of configuration steps, followed by
547 another blank line followed by a line C<=cut> (just like POD).
548
549 =item *
550
551 The order in which you list the steps is the order in which they will be
552 executed. If you delete a step from the canonical list or comment a step out,
553 it will not be executed.
554
555 ...
556 auto::snprintf
557 # auto::perldoc
558 auto::ctags
559 ...
560
561 In the above example, step C<auto::perldoc> will be completely skipped. You
562 will not see it listed as C<....skipped> in F<Configure.pl>'s output; it will
563 simply not be there at all.
564
565 =item *
566
567 This is the recommended location to call options whose impact is
568 I<conceptually> limited to a single configuration step. Type the
569 configuration step's name, type a whitespace, type the option (with no leading
570 C<-->) and repeat as needed for additional step-specific options.
571
572 init::manifest nomanicheck
573 ...
574
575 =item *
576
577 This is also the location to call options whose impact is limited to one step
578 at a time but which may be applied to more than one configuration step. The
579 C<fatal-step> and C<verbose-step> options are the best examples of this case.
580 Rather than requesting verbose output from all configuration steps, you may,
581 for example, wish to designate only a few steps for verbose output:
582
583 ...
584 init::hints verbose-step
067bf3a2 »
2010-12-28 remove init::headers config step
585 ...
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
586 inter::progs fatal-step
587 ...
588 auto::gcc verbose-step
589 ...
590
591 In the above example, F<Configure.pl> will grind to a halt if C<inter::progs>
592 does not complete successfully. You will get verbose output only from
593 C<init::hints> and C<auto::gcc>; the other 60+ steps will be terse.
594
595 =item *
596
597 Nothing prevents you from listing general options anywhere in this section.
598
599 init::manifest nomanicheck cc=$CC ld=/usr/bin/g++ verbose
600 init::defaults
601 ...
602
603 That will work -- but why would you want to do something that messy?
604
605 =back
606
607 =back
608
609 =head2 Example
610
611 Ignoring leading whitespace, this is an example of a correctly formed
612 configuration file.
613
614 =variables
615
616 CC=/usr/bin/gcc
617 CX=/usr/bin/g++
618
619 =general
620
621 cc=$CC
622 link=$CX
623 ld=/usr/bin/g++
624
625 =steps
626
627 init::manifest nomanicheck
628 init::defaults
629 init::install
630 init::hints verbose-step
631 inter::progs
632 inter::make
633 inter::lex
634 inter::yacc
635 auto::gcc
636 auto::glibc
637 auto::backtrace
638 auto::fink
639 auto::macports
640 auto::msvc
641 auto::attributes
642 auto::warnings
643 init::optimize
644 inter::shlibs
645 inter::libparrot
646 inter::types
647 auto::ops
648 auto::alignptrs
649 auto::headers
650 auto::sizes
651 auto::byteorder
652 auto::va_ptr
653 auto::format
654 auto::isreg
655 auto::arch
656 auto::jit
657 auto::cpu
658 auto::inline
659 auto::gc
660 auto::memalign
661 auto::signal
662 auto::socklen_t
663 auto::env
664 auto::gmp
665 auto::readline
666 auto::pcre
667 auto::opengl
668 auto::gettext
669 auto::snprintf
670 # auto::perldoc
671 auto::ctags
672 auto::revision
673 auto::icu
59fec7a8 »
2011-01-09 Move platform code from config to src
674 auto::platform
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
675 gen::config_h
676 gen::core_pmcs
677 gen::opengl
678 gen::makefiles
679 gen::config_pm
680
681 =cut
682
683 You may see how this works in practice by calling:
684
c2f7ada1 »
2009-08-09 Revise Configure.pl POD and other docs to reflect file movement.
685 perl Configure.pl --file=examples/config/file/configcompiler
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
686
687 or
688
c2f7ada1 »
2009-08-09 Revise Configure.pl POD and other docs to reflect file movement.
689 perl Configure.pl --file=examples/config/file/configwithfatalstep
780cbd77 »
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
690
c9264be3 »
2004-04-26 more config system add ons and docs
691 =head1 SEE ALSO
692
e478ac72 »
2008-10-26 Merge fileconf branch into trunk per
693 F<lib/Parrot/Configure.pm>,
c9264be3 »
2004-04-26 more config system add ons and docs
694 F<lib/Parrot/Configure/Step.pm>, F<docs/configuration.pod>
695
756762f9 »
2004-01-20 *** empty log message ***
696 =cut
aeeafc53 »
2002-05-27 Mention where all the files went.
697
b91d2687 »
2006-09-18 #40278: [CAGE] perl coding standards coda.
698 # Local Variables:
699 # mode: cperl
700 # cperl-indent-level: 4
701 # fill-column: 100
702 # End:
703 # vim: expandtab shiftwidth=4:
25830bb2 »
2007-05-03 Applying patch submitted in
704
Something went wrong with that request. Please try again.