Skip to content

HTTPS clone URL

Subversion checkout URL

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