Skip to content

HTTPS clone URL

Subversion checkout URL

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