# Copyright (C) 2001-2006, The Perl Foundation.
# $Id: Conf.pm 23430 2007-12-04 01:23:01Z jkeenan $
package Parrot::Configure::Options::Conf;
use strict;
use warnings;
use base qw( Exporter );
our @EXPORT_OK = qw(
@valid_options
$script
%options_components
$parrot_version
$svnid
);
use lib qw( lib );
use Parrot::BuildUtil;
our @valid_options = qw{
ask
bindir
cage
cc
ccflags
ccwarn
cgoto
configure_trace
cxx
datadir
debugging
define
exec-prefix
execcapable
fatal
fatal-step
floatval
gc
help
icu-config
icudatadir
icuheaders
icushared
includedir
infodir
inline
intval
jitcapable
languages
ld
ldflags
lex
libdir
libexecdir
libs
link
linkflags
localstatedir
m
make
maintainer
mandir
miniparrot
nomanicheck
oldincludedir
opcode
ops
optimize
parrot_is_shared
pmc
prefix
profile
sbindir
sharedstatedir
silent
sysconfdir
test
verbose
verbose-step
version
without-gdbm
without-gmp
without-icu
yacc
};
our $script = q{Configure.pl};
our $parrot_version = Parrot::BuildUtil::parrot_version();
our $svnid = '$Id: Conf.pm 23430 2007-12-04 01:23:01Z jkeenan $',
my %short_circuits = (
help => \&print_help,
version => \&print_version,
);
our %options_components = (
'valid_options' => \@valid_options,
'script' => $script,
'short_circuits' => \%short_circuits,
'conditionals' => \&conditional_assignments,
);
sub conditional_assignments {
my $argsref = shift;
$argsref->{debugging} = 1
unless ( ( exists $argsref->{debugging} ) && !$argsref->{debugging} );
$argsref->{maintainer} = 1
if defined $argsref->{lex}
or defined $argsref->{yacc};
return $argsref;
}
sub print_version {
print "Parrot Version $parrot_version Configure 2.0\n";
print "$svnid\n";
return 1;
}
sub print_help {
print <<"EOT";
$script - Parrot Configure 2.0
General Options:
--help Show this text
--version Show version information
--verbose Output extra information
--verbose=2 Output every setting change
--verbose-step=N Set verbose for step N only
--verbose-step=regex Set verbose for step matching description
--fatal Failure of any configuration step will cause
Configure.pl to halt
--fatal-step Comma-delimited string of configuration steps
which upon failure cause Configure.pl to halt
--silent Don't be verbose, interactive or fatal
--nomanicheck Don't check the MANIFEST
--languages="list of languages"
Specify a list of languages to process
--ask Have Configure ask for commonly-changed info
--test=configure Run tests of configuration tools before configuring
--test=build Run tests of build tools after configuring but before
calling 'make'
--test Run configuration tools tests, configure, then run
build tools tests
Compile Options:
--debugging=0 Disable debugging, default = 1
--inline Compiler supports inline
--optimize Optimized compile
--optimize=flags Add given optimizer flags
--parrot_is_shared Link parrot dynamically
--m=32 Build 32bit executable on 64-bit architecture.
--profile Turn on profiled compile (gcc only for now)
--cage [CAGE] compile includes many additional warnings
--cc=(compiler) Use the given compiler
--ccflags=(flags) Use the given compiler flags
--ccwarn=(flags) Use the given compiler warning flags
--cxx=(compiler) Use the given C++ compiler
--libs=(libs) Use the given libraries
--link=(linker) Use the given linker
--linkflags=(flags) Use the given linker flags
--ld=(linker) Use the given loader for shared libraries
--ldflags=(flags) Use the given loader flags for shared libraries
--lex=(lexer) Use the given lexical analyzer generator
--make=(make tool) Use the given make utility
--yacc=(parser) Use the given parser generator
--define=inet_aton Quick hack to use inet_aton instead of inet_pton
Parrot Options:
--intval=(type) Use the given type for INTVAL
--floatval=(type) Use the given type for FLOATVAL
--opcode=(type) Use the given type for opcodes
--ops=(files) Use the given ops files
--pmc=(files) Use the given PMC files
--cgoto=0 Don't build cgoto core - recommended when short of mem
--jitcapable Use JIT
--execcapable Use JIT to emit a native executable
--gc=(type) Determine the type of garbage collection
type=(gc|libc|malloc|malloc-trace) default is gc
External Library Options:
--without-gmp Build parrot without GMP support
--without-gdbm Build parrot without GDBM support
ICU Options:
For using a system ICU, these options can be used:
--icu-config=/path/to/icu-config
Location of the script used for ICU autodetection.
You just need to specify this option if icu-config
is not in your PATH.
--icu-config=none Can be used to disable the autodetection feature.
It will also be disabled if you specify any other
of the following ICU options.
If you do not have a full ICU installation:
--without-icu Build parrot without ICU support
--icuheaders=(path) Location of ICU headers without /unicode
--icushared=(flags) Full linker command to create shared libraries
--icudatadir=(path) Directory to locate ICU's data file(s)
Other Options (may not be implemented):
--maintainer Create imcc's parser and lexer files. Needs a working
parser and lexer.
--miniparrot Build parrot assuming only pure ANSI C is available
Install Options:
--prefix=PREFIX Install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX Install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--infodir=DIR info documentation [PREFIX/info]
--mandir=DIR man documentation [PREFIX/man]
EOT
return 1;
}
1;
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4:
syntax highlighted by Code2HTML, v. 0.9.1