Skip to content

HTTPS clone URL

Subversion checkout URL

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