tagged release 0.6.4
[parrot.git] / config / init / install.pm
blob202f4ecd4ecb13437057d16b17ebe9cab806ddbe
1 # Copyright (C) 2001-2007, The Perl Foundation.
2 # $Id$
4 =head1 NAME
6 config/init/install.pm - autoconf compatabile installation paths
8 =head1 DESCRIPTION
10 Sets up the installation paths
12 =cut
14 package init::install;
16 use strict;
17 use warnings;
19 use base qw(Parrot::Configure::Step);
21 sub _init {
22 my $self = shift;
23 my %data;
24 $data{description} = q{Setting up installation paths};
25 $data{result} = q{};
26 return \%data;
29 sub runstep {
30 my ( $self, $conf ) = @_;
32 my $prefix = $conf->options->get('prefix') || "/usr/local";
33 $prefix =~ s{/\z}{};
34 my $ep = $conf->options->get('exec-prefix');
35 $ep =~ s{/\z}{} if defined $ep;
36 my $eprefix = $ep ? $ep : $prefix;
38 # --bindir=DIR user executables [EPREFIX/bin]
39 my $bindir = assign_dir( $conf, 'bindir', $eprefix, '/bin' );
41 # --sbindir=DIR system admin executables [EPREFIX/sbin]
42 my $sbindir = assign_dir( $conf, 'sbindir', $eprefix, '/sbin' );
44 # --libexecdir=DIR program executables [EPREFIX/libexec]
45 my $libexecdir = assign_dir( $conf, 'libexecdir', $eprefix, '/libexec' );
47 # --datadir=DIR read-only architecture-independent data [PREFIX/share]
48 my $datadir = assign_dir( $conf, 'datadir', $prefix, '/share' );
50 # --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
51 my $sysconfdir = assign_dir( $conf, 'sysconfdir', $prefix, '/etc' );
53 # --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
54 my $sharedstatedir = assign_dir( $conf, 'sharedstatedir', $prefix, '/com' );
56 # --localstatedir=DIR modifiable single-machine data [PREFIX/var]
57 my $localstatedir = assign_dir( $conf, 'localstatedir', $prefix, '/var' );
59 # --libdir=DIR object code libraries [EPREFIX/lib]
60 my $libdir = assign_dir( $conf, 'libdir', $eprefix, '/lib' );
62 # --includedir=DIR C header files [PREFIX/include]
63 my $includedir = assign_dir( $conf, 'includedir', $prefix, '/include' );
65 # --oldincludedir=DIR C header files f|| non-gcc [/usr/include]
66 my $oldincludedir = assign_dir( $conf, 'oldincludedir', q{}, '/usr/include' );
68 # --infodir=DIR info documentation [PREFIX/info]
69 my $infodir = assign_dir( $conf, 'infodir', $prefix, '/info' );
71 # --mandir=DIR man documentation [PREFIX/man]
72 my $mandir = assign_dir( $conf, 'mandir', $prefix, '/man' );
74 $conf->data->set(
75 prefix => $prefix,
76 exec_prefix => $eprefix,
77 bin_dir => $bindir, # deprecated
78 bindir => $bindir,
79 sbindir => $sbindir,
80 libexecdir => $libexecdir,
81 datadir => $datadir,
82 sysconfdir => $sysconfdir,
83 sharedstatedir => $sharedstatedir,
84 localstatedir => $localstatedir,
85 libdir => $libdir,
86 lib_dir => $libdir, # deprecated
87 includedir => $includedir,
88 include_dir => $includedir, # deprecated
89 oldincludedir => $oldincludedir,
90 infodir => $infodir,
91 mandir => $mandir,
93 # parrot internal use only
94 doc_dir => $datadir . "/doc/parrot",
97 return 1;
100 sub assign_dir {
101 my ( $conf, $dir_str, $fix, $ext ) = @_;
102 my $d = $conf->options->get($dir_str);
103 return $d ? $d : $fix . $ext;
108 # Local Variables:
109 # mode: cperl
110 # cperl-indent-level: 4
111 # fill-column: 100
112 # End:
113 # vim: expandtab shiftwidth=4: