Skip to content
This repository
Newer
Older
100644 667 lines (432 sloc) 15.445 kb
3ace369a » particle
2006-07-24 #39826: [CAGE] convert C<perl -w> to C<use warnings;>
1 #! perl
29b08dbc » bschmalhofer
2006-04-23 Require Perl 5.6.0, not 5.8.0, in Configure.pl.
2
110c52f2 » allisonrandal
2009-03-31 [build] Add a --disable-rpath option to allow Linux packagers to build
3 # Copyright (C) 2001-2009, Parrot Foundation.
11b744f3 » simoncozens
2001-09-11 Configure system from Brent Dax <brentdax@cpan.org>
4
dc404276 » coke
2008-07-14 [codingstd] require version in a way that avoids a complaint from per…
5 use 5.008;
3477cc06 » jkeenan
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 » jkeenan
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 » jkeenan
2008-01-08 Applying patch submitted in
17 use Parrot::Configure::Messages qw(
18 print_introduction
19 print_conclusion
20 );
b65b944f » NotFound
2008-07-15 Update .parrot_current_rev in Configure if possible
21 use Parrot::Revision;
3477cc06 » jkeenan
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 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
35 my ($args, $steps_list_ref) = process_options(
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
36 {
468e9585 » jkeenan
2008-08-30 Check for whether $ARGV[0] to avoid uninitialized value warning when …
37 mode => (defined $ARGV[0] and $ARGV[0] =~ /^--file=/)
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
38 ? 'file'
39 : 'configure',
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
40 argv => [@ARGV],
41 }
42 );
43 exit(1) unless defined $args;
44
45 my $opttest = Parrot::Configure::Options::Test->new($args);
46
47 # configuration tests will only be run if you requested them
48 # as command-line option
a725b2fc » jkeenan
2008-04-19 Refactor preparatory code found in lib/Parrot/Configure/Options/Test.…
49 $opttest->run_configure_tests( get_preconfiguration_tests() );
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
50
51 my $parrot_version = $Parrot::Configure::Options::Conf::parrot_version;
52
53 # from Parrot::Configure::Messages
46c84060 » jkeenan
2010-12-30 Implement option of fully silent configuration.
54 print_introduction($parrot_version)
55 unless $args->{silent};
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
56
b65b944f » NotFound
2008-07-15 Update .parrot_current_rev in Configure if possible
57 # Update revision number if needed
58 Parrot::Revision::update();
59
a5b614c0 » bschmalhofer
2008-02-10 [config]
60 my $conf = Parrot::Configure->new();
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
61
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
62 $conf->add_steps( @{ $steps_list_ref } );
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
63
64 # from Parrot::Configure::Data
65 $conf->options->set( %{$args} );
8963c6e5 » rurban
2009-02-08 [config] Enable make reconfig. RT #58034
66 # save the command-line for make reconfig
766efa78 » jkeenan
2011-05-05 Minor code reformatting.
67 $conf->data->set(configure_args => @ARGV
68 ? '"'.join("\" \"", map {qq($_)} @ARGV).'"'
69 : '');
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
70
d154d3a8 » jkeenan
2008-08-03 Reposition one inline comment; add another.
71 # Log files created by Configure.pl in MANIFEST.configure.generated
7bb2d0eb » jkeenan
2008-04-05 Applying patch submitted in
72 $conf->{active_configuration} = 1;
20990ff0 » moritz
2008-08-25 [config] simplification suggested by DietCoke++
73 unlink 'MANIFEST.configure.generated';
d154d3a8 » jkeenan
2008-08-03 Reposition one inline comment; add another.
74
75 # Run the actual steps from Parrot::Configure
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
76 $conf->runsteps or exit(1);
77
78 # build tests will only be run if you requested them
79 # as command-line option
a725b2fc » jkeenan
2008-04-19 Refactor preparatory code found in lib/Parrot/Configure/Options/Test.…
80 $opttest->run_build_tests( get_postconfiguration_tests() );
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
81
82 my $make = $conf->data->get('make');
83 # from Parrot::Configure::Messages
46c84060 » jkeenan
2010-12-30 Implement option of fully silent configuration.
84 ( print_conclusion( $conf, $make, $args ) ) ? exit 0 : exit 1;
3477cc06 » jkeenan
2008-01-08 Applying patch submitted in
85
86 ################### DOCUMENTATION ###################
87
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
88 =head1 NAME
54d55b6c » Josh Wilmes
2002-03-16 Patch from Nicholas Clark <nick@unfortu.net>: stops silly people
89
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
90 Configure.pl - Parrot's configuration script
a3cd1626 » Gregor N. Purdy
2001-12-30 Build enhancements. Originally to support building shared libraries, …
91
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
92 =head1 SYNOPSIS
a3cd1626 » Gregor N. Purdy
2001-12-30 Build enhancements. Originally to support building shared libraries, …
93
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
94 % perl Configure.pl [options]
6d36c2d4 » Leopold Toetsch
2003-10-28 bunch of patches:
95
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
96 or:
97
98 % perl Configure.pl --file=/path/to/configuration/directives
99
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
100 =head1 DESCRIPTION
a3cd1626 » Gregor N. Purdy
2001-12-30 Build enhancements. Originally to support building shared libraries, …
101
d10b19ef » petdance
2006-07-17 Perl programs are programs, not scripts
102 This is Parrot's configuration program. It should be run to create
103 the necessary system-specific files before building Parrot.
b4b718e4 » Michael Scott
2004-03-07 Update configuration system documentation (based on patches provided …
104
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
105 We now offer two interfaces to configuration:
106
107 =over 4
108
109 =item * Command-Line Interface
c15d8e54 » Gregor N. Purdy
2002-01-08 Added 'reconfig' make target and corresponding --reconfig option to
110
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
111 All configuration options are placed on the command-line. You may request
112 interactive configuration with the C<--ask> option. You may not use the
113 C<--file> option, as that is reserved for the Configuration-File interface.
c15d8e54 » Gregor N. Purdy
2002-01-08 Added 'reconfig' make target and corresponding --reconfig option to
114
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
115 =item * Configuration-File Interface
116
117 All configuration options are placed in a special configuration file whose
118 full path is invoked on the command-line as
119 C<--file=/path/to/configuration/directives> as the sole command-line option.
120 You may not request interactive configuration. For specific instructions, see
121 L</"CONFIGURATION-FILE INTERFACE"> below.
122
123 =back
124
125 =head2 General Options
126
127 =over 4
ad4983ce » Leopold Toetsch
2003-01-04 add --optimize Configure option
128
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
129 =item C<--help>
205f6530 » brentdax
2001-09-16 Win32 compatibility, Configure hints, 5.005 compatibility, MANIFEST c…
130
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
131 Prints out a description of the options and exits.
ad4983ce » Leopold Toetsch
2003-01-04 add --optimize Configure option
132
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
133 =item C<--version>
0fc6ac68 » brentdax
2002-05-24 Configure.pl 2.0.
134
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
135 Prints out the version number of Configure.pl and exits.
c0142c7e » Dan Sugalski
2002-10-05 memory allocation rework
136
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
137 =item C<--verbose>
c0142c7e » Dan Sugalski
2002-10-05 memory allocation rework
138
6f5b5384 » jhoblitt
2006-01-02 podtidy configure files
139 Tells Configure.pl to output extra information about the configuration data it
140 is setting.
c15d8e54 » Gregor N. Purdy
2002-01-08 Added 'reconfig' make target and corresponding --reconfig option to
141
ab81b8c2 » brentdax
2004-03-06 Configure output cleanup. Retasks --verbose to include the old output…
142 =item C<--verbose=2>
143
dacbc406 » Leopold Toetsch
2004-04-21 ICU config patch - use systems ICU
144 Tells Configure.pl to output information about i<every> setting added or
ab81b8c2 » brentdax
2004-03-06 Configure output cleanup. Retasks --verbose to include the old output…
145 changed.
146
d79c7826 » jkeenan
2007-08-25 Applying patch submitted in
147 =item C<--verbose-step={N|regex}>
567c2b1b » Leopold Toetsch
2004-04-25 new Configure options: verbose-step
148
d79c7826 » jkeenan
2007-08-25 Applying patch submitted in
149 Run C<--verbose=2> for step number C<N> or matching description.
567c2b1b » Leopold Toetsch
2004-04-25 new Configure options: verbose-step
150
a5e76432 » jkeenan
2007-10-20 Committing patch submitted for RT 45523 and 45525. Add --fatal and
151 =item C<--fatal>
152
153 Tells Configure.pl to halt completely if any configuration step fails.
154
155 =item C<--fatal-step={init::alpha,inter::beta,auto::gamma}>
156
157 Tells Configure.pl to halt completely if any configuration step in
158 comma-delimited string individually fails.
159
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
160 =item C<--nomanicheck>
85a1fcca » Leopold Toetsch
2003-09-25 reenable debugging=1 default
161
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
162 Tells Configure.pl not to run the MANIFEST check.
11b744f3 » simoncozens
2001-09-11 Configure system from Brent Dax <brentdax@cpan.org>
163
20fed4ce » Nicholas Clark
2004-10-02 Add a --prefix argument to Configure.pl to set the installation prefix
164 =item C<--prefix>
165
166 Sets the location where parrot will be installed.
167
b4b718e4 » Michael Scott
2004-03-07 Update configuration system documentation (based on patches provided …
168 =item C<--ask>
de4d0796 » Melvin Smith
2002-05-16 Add conditional configurations for testy code.
169
570f6d47 » jkeenan
2008-12-17 Remove configuration probe for asynchronous input/output per architec…
170 This turns on the user prompts during configuration. Available only in
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
171 Command-Line interface. Not available in Configuration-File interface.
6fba4381 » simoncozens
2001-09-22 Abstract the argument and opcode packing types and functions out into
172
84c64a29 » jkeenan
2007-05-12 Applying to trunk patch submitted in RT 42690. particle requested a '…
173 =item C<--test>
174
175 Run certain tests along with F<Configure.pl>:
176
177 =over 4
178
179 =item C<--test=configure>
180
181 Run tests found in F<t/configure/> I<before> beginning configuration. These
182 tests demonstrate that Parrot's configuration tools will work properly once
183 configuration has begun.
184
185 =item C<--test=build>
186
272ac526 » jkeenan
2010-01-23 Some prerequisites for successful operation of buildtools_tests are n…
187 Run tests found in F<t/steps/>, F<t/postconfigure/> and F<t/pharness>.
84c64a29 » jkeenan
2007-05-12 Applying to trunk patch submitted in RT 42690. particle requested a '…
188
189 =item C<--test>
190
191 Run the tests described in C<--test=configure>, conduct configuration, then
192 run the tests described in C<--test=build>.
193
194 =back
195
52494c20 » jkeenan
2009-07-21 Merge darwin2hints branch into trunk. Functionality for detecting Fin…
196 =item C<--configure_trace>
197
198 Store the results of each configuration step in a Storable F<.sto> file on
199 disk, for later analysis by F<Parrot::Configure::Trace> methods.
200
d3bdc792 » jkeenan
2010-12-18 Add documentation for quickcover; link to Devel-Cover.
201 =item C<--coveragedir>
202
1bb6425e » pjcj
2010-12-31 Changed cover to fullcover and quickcover to cover
203 In preparation for calling C<make cover> to perform coverage analysis,
d3bdc792 » jkeenan
2010-12-18 Add documentation for quickcover; link to Devel-Cover.
204 provide a user-specified directory for top level of HTML output.
205
52494c20 » jkeenan
2009-07-21 Merge darwin2hints branch into trunk. Functionality for detecting Fin…
206 =item Operating system-specific configuration options
207
208 =over 4
209
bc26b63e » darbelo
2010-02-04 Make the used hints file overridable on the Configure.pl command line.
210 =item C<--hintsfile=filename>
211
212 Use filename as the hints file.
213
52494c20 » jkeenan
2009-07-21 Merge darwin2hints branch into trunk. Functionality for detecting Fin…
214 =item C<--darwin_no_fink>
215
216 On Darwin, do not probe for Fink libraries.
217
218 =item C<--darwin_no_macports>
219
220 On Darwin, do not probe for Macports libraries.
221
222 =back
223
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
224 =back
a3cd1626 » Gregor N. Purdy
2001-12-30 Build enhancements. Originally to support building shared libraries, …
225
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
226 =head2 Compile Options
9d000b4e » Dan Sugalski
2001-10-12 Made the changes to figure out mask bits for various register and stack
227
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
228 =over 4
19fa0d49 » tomhughes
2001-10-14 Stop Configure trying to make op_info.c and op.h as op_info.c no longer
229
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
230 =item C<--debugging=0>
bc2ee1df » brentdax
2002-03-05 Minor cleanup and enhancements.
231
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
232 Debugging is turned on by default. Use this to disable it.
9d000b4e » Dan Sugalski
2001-10-12 Made the changes to figure out mask bits for various register and stack
233
82a87188 » particle
2006-01-05 config: add --parrot_is_shared option to docs
234 =item C<--parrot_is_shared>
235
236 Link parrot dynamically.
237
2ddc05f4 » Leopold Toetsch
2006-07-27 [config] New Configure.pl option --m=32
238 =item C<--m=32>
239
fe05e8a2 » ambs
2006-08-20 Some enhancements on linelength.t
240 Create a 32-bit executable on 64-architectures like x86_64. This
fb5eae84 » jkeenan
2009-11-08 POD formatting corrections only.
241 option appends C<-m32> to compiler and linker programs and does
242 C<s/lib64/lib/g> on link flags.
2ddc05f4 » Leopold Toetsch
2006-07-27 [config] New Configure.pl option --m=32
243
244 This option is experimental. See F<config/init/defaults.pm> for more.
245
62c60b68 » Leopold Toetsch
2004-03-05 really speed up oo1.pasm by 2
246 =item C<--profile>
247
248 Turn on profiled compile (gcc only for now)
249
efd9dcb6 » paultcochrane
2006-12-19 Added --cage option. Part of patch (#39802) courtesy of Kevin Tew
250 =item C<--cage>
251
252 [CAGE] compile includes many additional warnings
253
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
254 =item C<--optimize>
9d000b4e » Dan Sugalski
2001-10-12 Made the changes to figure out mask bits for various register and stack
255
fb5eae84 » jkeenan
2009-11-08 POD formatting corrections only.
256 Add Perl 5's C<$Config{optimize}> to the compiler flags.
2fc8aec2 » bschmalhofer
2005-09-14 This patch makes it easier to compile parrot with a compiler other than
257
258 =item C<--optimize=flags>
259
260 Add C<flags> to the compiler flags.
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
261
262 =item C<--inline>
263
264 Tell Configure that the compiler supports C<inline>.
265
266 =item C<--cc=(compiler)>
267
5792dcec » jkeenan
2011-03-30 Add entry for '--cxx' to help.
268 Specify which C compiler to use.
269
270 =item C<--cxx=(compiler)>
271
272 Specify which C++ compiler to use.
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
273
274 =item C<--ccflags=(flags)>
275
276 Use the given compiler flags.
277
278 =item C<--ccwarn=(flags)>
279
280 Use the given compiler warning flags.
281
282 =item C<--libs=(libs)>
283
284 Use the given libraries.
285
286 =item C<--link=(linker)>
287
288 Specify which linker to use.
289
290 =item C<--linkflags=(flags)>
291
292 Use the given linker flags
293
d716b343 » plobsing
2010-10-04 add --ar and --arflags options to Configure.pl
294 =item C<--ar=(archiver)>
295
296 Specify which librarian to use for static libraries
297
298 =item C<--arflags=(flags)>
299
300 Use the given librarian flags for static libraris
301
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
302 =item C<--ld=(linker)>
303
304 Specify which loader to use for shared libraries.
305
306 =item C<--ldflags=(flags)>
307
308 Use the given loader flags for shared libraries
309
110c52f2 » allisonrandal
2009-03-31 [build] Add a --disable-rpath option to allow Linux packagers to build
310 =item C<--disable-rpath>
311
312 Specify that rpath should not be included in linking flags. With this
313 configuration option, you must append the library build directory
314 (usually blib/lib) to the LD_LIBRARY_PATH environment variable (or your
315 platform equivalent). This option is primarily used for building Linux
316 packages.
317
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
318 =item C<--lex=(lexer)>
319
320 Specify which lexer to use.
321
322 =item C<--yacc=(parser)>
323
324 Specify which parser to use.
08462887 » Leopold Toetsch
2004-02-28 various patches 2
325
b4b718e4 » Michael Scott
2004-03-07 Update configuration system documentation (based on patches provided …
326 =item C<--define=val1[,val2]>
327
6f5b5384 » jhoblitt
2006-01-02 podtidy configure files
328 Generate "#define PARROT_DEF_VAL1 1" ... entries in has_header.h. Currently
329 needed to use inet_aton for systems that lack inet_pton:
b4b718e4 » Michael Scott
2004-03-07 Update configuration system documentation (based on patches provided …
330
331 --define=inet_aton
332
a4c21ab8 » jkeenan
2009-04-30 Applying patch supplied by bsdz in https://trac.parrot.org/parrot/tic…
333 =item C<--no-line-directives>
334
335 Disables the creation of C #line directives when generating C from PMCs and
336 ops. Useful when debugging internals.
3b2baf45 » coke
2009-05-01 Remove trailing whitespace
337
b4b718e4 » Michael Scott
2004-03-07 Update configuration system documentation (based on patches provided …
338 =back
339
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
340 =head2 Parrot Options
b4b718e4 » Michael Scott
2004-03-07 Update configuration system documentation (based on patches provided …
341
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
342 =over 4
b4b718e4 » Michael Scott
2004-03-07 Update configuration system documentation (based on patches provided …
343
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
344 =item C<--intval=(type)>
345
346 Use the given type for C<INTVAL>.
347
348 =item C<--floatval=(type)>
349
350 Use the given type for C<FLOATVAL>.
351
352 =item C<--opcode=(type)>
353
354 Use the given type for opcodes.
355
356 =item C<--ops=(files)>
357
358 Use the given ops files.
359
5a9e89ce » Leopold Toetsch
2004-04-21 [PATCH] runConfigureICU usage
360 =back
361
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
362 =head2 International Components For Unicode (ICU) Options
5a9e89ce » Leopold Toetsch
2004-04-21 [PATCH] runConfigureICU usage
363
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
364 =over 4
5a9e89ce » Leopold Toetsch
2004-04-21 [PATCH] runConfigureICU usage
365
acf4fa4e » Jens Rieks
2004-09-29 autodetect and use system icu installations
366 =item C<--icu-config=/path/to/icu-config>
367
73ba72d1 » Leopold Toetsch
2005-06-01 [perl #36057] [PATCH] Fix some typos - 5
368 Use the specified icu-config script to determine the necessary ICU options.
acf4fa4e » Jens Rieks
2004-09-29 autodetect and use system icu installations
369
6f5b5384 » jhoblitt
2006-01-02 podtidy configure files
370 Use --icu-config=none to disable the autodetect feature. Parrot will then be
371 build without ICU.
acf4fa4e » Jens Rieks
2004-09-29 autodetect and use system icu installations
372
6f5b5384 » jhoblitt
2006-01-02 podtidy configure files
373 B<Note:> If you specify another ICU option than --icu-config, the autodetection
374 functionality will be disabled.
a1949756 » Jens Rieks
2004-09-30 - removed error message if icu-config does not exists
375
dacbc406 » Leopold Toetsch
2004-04-21 ICU config patch - use systems ICU
376 =item C<--icushared=(linkeroption)>
377
5ec035c7 » Leopold Toetsch
2005-12-14 Config cleanup - icu
378 Linker command to link against ICU library.
dacbc406 » Leopold Toetsch
2004-04-21 ICU config patch - use systems ICU
379
380 E.g.
381
382 --icushared='-L /opt/openoffice/program -licudata -licuuc'
383
384 (The libs in openoffice are actually version 2.2 and do not work)
385
386 =item C<--icuheaders=(header_dir)>
387
6f5b5384 » jhoblitt
2006-01-02 podtidy configure files
388 Location of ICU header files without the /unicode suffix.
dacbc406 » Leopold Toetsch
2004-04-21 ICU config patch - use systems ICU
389
390 E.g.
391
392 --icuheaders='/home/lt/icu/'
393
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
394 =back
395
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
396 =head2 Other Options
205f6530 » brentdax
2001-09-16 Win32 compatibility, Configure hints, 5.005 compatibility, MANIFEST c…
397
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
398 =over 4
a3cd1626 » Gregor N. Purdy
2001-12-30 Build enhancements. Originally to support building shared libraries, …
399
b4b718e4 » Michael Scott
2004-03-07 Update configuration system documentation (based on patches provided …
400 =item C<--maintainer>
43a606a2 » Dan Sugalski
2002-01-30 This patch allows parrot to mostly-build with tcc. It allows one to skip
401
6f5b5384 » jhoblitt
2006-01-02 podtidy configure files
402 Use this option if you want imcc's parser and lexer files to be generated.
403 Needs a working parser and lexer.
9d000b4e » Dan Sugalski
2001-10-12 Made the changes to figure out mask bits for various register and stack
404
370a4184 » cotto
2011-04-17 Introduce --with-llvm option to explicitly link to LLVM
405 =item C<--with-llvm>
406
407 Use this option if you have a recent version of LLVM installed and wish Parrot
408 to link to it.
409
0fc6ac68 » brentdax
2002-05-24 Configure.pl 2.0.
410 =back
a3cd1626 » Gregor N. Purdy
2001-12-30 Build enhancements. Originally to support building shared libraries, …
411
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
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
067bf3a2 » coke
2010-12-28 remove init::headers config step
549 ...
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
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
621 auto::cpu
622 auto::inline
623 auto::gc
624 auto::memalign
625 auto::signal
626 auto::socklen_t
627 auto::env
628 auto::gmp
629 auto::readline
630 auto::pcre
631 auto::opengl
632 auto::gettext
633 auto::snprintf
634 # auto::perldoc
635 auto::ctags
636 auto::revision
637 auto::icu
59fec7a8 » nwellnhof
2011-01-09 Move platform code from config to src
638 auto::platform
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
639 gen::config_h
640 gen::core_pmcs
641 gen::opengl
642 gen::makefiles
643 gen::config_pm
644
645 =cut
646
647 You may see how this works in practice by calling:
648
c2f7ada1 » jkeenan
2009-08-09 Revise Configure.pl POD and other docs to reflect file movement.
649 perl Configure.pl --file=examples/config/file/configcompiler
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
650
651 or
652
c2f7ada1 » jkeenan
2009-08-09 Revise Configure.pl POD and other docs to reflect file movement.
653 perl Configure.pl --file=examples/config/file/configwithfatalstep
780cbd77 » jkeenan
2008-08-29 Merge newsc branch into trunk, implementing Configuration-File interf…
654
c9264be3 » Leopold Toetsch
2004-04-26 more config system add ons and docs
655 =head1 SEE ALSO
656
e478ac72 » jkeenan
2008-10-26 Merge fileconf branch into trunk per
657 F<lib/Parrot/Configure.pm>,
c9264be3 » Leopold Toetsch
2004-04-26 more config system add ons and docs
658 F<lib/Parrot/Configure/Step.pm>, F<docs/configuration.pod>
659
756762f9 » Michael Scott
2004-01-20 *** empty log message ***
660 =cut
aeeafc53 » brentdax
2002-05-27 Mention where all the files went.
661
b91d2687 » bschmalhofer
2006-09-18 #40278: [CAGE] perl coding standards coda.
662 # Local Variables:
663 # mode: cperl
664 # cperl-indent-level: 4
665 # fill-column: 100
666 # End:
667 # vim: expandtab shiftwidth=4:
25830bb2 » jkeenan
2007-05-03 Applying patch submitted in
668
Something went wrong with that request. Please try again.