/[wait]/trunk/Makefile.PL
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/Makefile.PL

Parent Directory Parent Directory | Revision Log Revision Log


Revision 88 - (hide annotations)
Mon May 24 13:44:01 2004 UTC (19 years, 11 months ago) by dpavlin
File MIME type: text/plain
File size: 5384 byte(s)
move cvs-head to trunk

1 ulpfr 10 ######################### -*- Mode: Perl -*- #########################
2     ##
3     ## $Basename: Makefile.PL $
4 ulpfr 19 ## $Revision: 1.13 $
5 ulpfr 10 ##
6     ## Author : Ulrich Pfeifer
7     ## Created On : Tue Aug 20 12:15:44 1996
8     ##
9     ## Last Modified By : Ulrich Pfeifer
10 ulpfr 45 ## Last Modified On : Fri Dec 29 14:14:54 2000
11 ulpfr 10 ##
12     ## Copyright (c) 1996-1997, Ulrich Pfeifer
13     ##
14     ######################################################################
15    
16     use strict;
17    
18     use Config;
19     use ExtUtils::MakeMaker qw(:DEFAULT neatvalue);
20     use File::Path;
21     use Getopt::Long;
22    
23     &check_perl(5.00307); # need pack 'w', ...
24    
25     my %OPT = (default => 0);
26     GetOptions(\%OPT, 'default!');
27    
28     &init($OPT{default});
29    
30 ulpfr 13 my @pl_files = glob('script/*');
31 ulpfr 10
32     my %seen;
33     my @objects = grep { s![^.]+$!o!; !$seen{$_}++ } glob('*.[cx]*');
34    
35 ulpfr 19 WriteMakefile(
36     'PREREQ_PM' => {'Term::ReadLine' => 0,
37     'DB_File' => 1.03,
38     'Data::Dumper' => 2.02,
39     'Pod::Text' => 1.02,
40     'HTML::Entities' => 0,
41     'LockFile::Simple' => 0,
42 ulpfr 10 },
43     'NAME' => 'WAIT',
44     'OBJECT' => join(' ', @objects),
45 ulpfr 38 'VERSION_FROM' => 'lib/WAIT.pm',
46 ulpfr 10 'EXE_FILES' => \@pl_files,
47     'dist' => {
48 ulpfr 19 PREOP => 'cp README.header README && pod2text lib/WAIT.pm >> README',
49 ulpfr 10 SUFFIX => 'gz',
50     COMPRESS => 'gzip -9f',
51     },
52     );
53    
54    
55     ## ###################################################################
56     ## subs
57     ## ###################################################################
58    
59     sub MY::postamble
60     {
61     q[
62     lib/WAIT/Query/Wais.pm: waisquery.y
63     byacc -P -l waisquery.y;
64     sed -n '2,$$ p' y.tab.pl | ]. "$Config{cpp} $Config{cppminus}" .
65 ulpfr 19 q[ | sed -e '/^# [0-9]/ d' > $@ && rm -f y.tab.pl
66 ulpfr 10
67     TAGS: MANIFEST
68     etags `].$^X.q[ -ane 'print "$$F[0]\n"' MANIFEST`
69     ]
70     }
71    
72    
73     sub init
74     {
75     my $use_defaults = shift;
76    
77     $WAIT::Config = {};
78     eval { require WAIT::Config; };
79    
80     my $answer;
81    
82    
83     ## WAIT database directory
84     print <<"EOF";
85     The WAIT module needs a directory of its own to store the databases.
86     This may be a site-wide directory or a personal directory.
87     EOF
88     ;
89    
90     $answer = $WAIT::Config->{WAIT_home};
91 ulpfr 45 $answer = '' unless $answer && -d $answer;
92 ulpfr 10 $answer = prompt("WAIT database directory?", $answer) unless $use_defaults;
93 ulpfr 45
94 ulpfr 43 #mkpath($answer) unless $answer && -d $answer; # dies if it can't
95 ulpfr 10 $WAIT::Config->{WAIT_home} = $answer;
96    
97    
98     ## get manual pages
99     my $help = q{
100    
101     Now you need to tell me which manual directories you want to index.
102     If you want to enter a path, just type it in. To select a path type
103     '+' an the number. To deselect type '-' an the number. Enter 'q' if
104     you are finished.
105    
106     };
107     my %seen;
108     my @manpath = @{$WAIT::Config->{manpath} ||
109     [grep (-d $_, split(':', $ENV{MANPATH}),
110     '/usr/man',
111     '/usr/local/man')]};
112    
113     @manpath = grep !$seen{$_}++, @manpath;
114     my %select; @select{0 .. @manpath} = ('+') x @manpath;
115    
116     for (split(':', $ENV{MANPATH}), '/usr/man', '/usr/local/man') {
117     next unless -d $_;
118     next if $seen{$_};
119     $select{@manpath} = '-';
120     push @manpath, $_;
121     }
122    
123     print $help;
124     while (! $use_defaults) {
125     my $i;
126     for $i (0 .. $#manpath) {
127     printf "%2d %c %s\n", $i, ord($select{$i}), $manpath[$i];
128     }
129     $answer = prompt("path|[+-]number|q>");
130     if ($answer eq 'q') {
131     last;
132     } elsif ($answer =~ /^(\+|\-)\s*(\d+)?$/) {
133     if (defined $2) {
134     if (0 <= $2 and $2 <= $#manpath) {
135     $select{$2} = $1;
136     }
137     else {
138     print $help;
139     }
140     } else {
141     for (keys %select) {
142     $select{$_} = $1;
143     }
144     }
145     } elsif (-d $answer) {
146     push @manpath, $answer;
147     $select{$#manpath} = '+';
148     } else {
149     print "Directory '$answer' does not seem to exists?\n";
150     print $help;
151     }
152     }
153     $WAIT::Config->{manpath} = [];
154     my $i;
155     foreach $i (0 .. $#manpath) {
156     if ($select{$i} eq '+') {
157     push @{$WAIT::Config->{manpath}}, $manpath[$i];
158     }
159     }
160    
161    
162     ## pager
163     print "\nWhat pager do you want to use?\n";
164     print "Your perl administrator recommends '$Config{pager}'\n";
165     print "We would prefer 'less', if you have that installed\n"
166     unless $Config{pager} =~ /less/;
167    
168     $answer = $WAIT::Config->{pager} || $Config{pager} || 'less';
169     $answer = prompt("pager?", $answer) unless $use_defaults;
170     $WAIT::Config->{pager} = $answer;
171    
172    
173     ## write config
174 ulpfr 13 my $configpmdir = MM->catdir('lib', 'WAIT');
175 ulpfr 10 mkpath $configpmdir;
176 laperla 76 my $configpm = MM->catfile('lib', 'WAIT', 'Config.pm' );
177 ulpfr 10
178     open FH, "> $configpm" or die "Couldn't write open $configpm: $!\n";
179     print FH qq[\$WAIT::Config = \{\n];
180     foreach (sort keys %$WAIT::Config) {
181     print FH " '$_' => ", neatvalue($WAIT::Config->{$_}), ",\n";
182     }
183    
184     print FH "};\n1;\n";
185     }
186    
187    
188     sub check_perl
189     {
190     my $perlversion = shift;
191    
192     if ($] < $perlversion) {
193     print <<"EOF";
194     Your Perl version is less than $perlversion. Please install a Perl with version
195     $perlversion or higher. Get it from CPAN: http://www.perl.org/CPAN/
196     EOF
197     ;
198     die "\n";
199     }
200     else {
201     print "Your perl has version $] (higher than $perlversion). Ok!\n";
202     }
203     }
204    

Properties

Name Value
cvs2svn:cvs-rev 1.5

  ViewVC Help
Powered by ViewVC 1.1.26