Implemented automatic /etc/fstab modifications.
[captive.git] / autogen.pl
1 #! /usr/bin/perl
2
3 # $Id$
4 # Run to generate the initial Makefiles etc. after CVS checkout.
5 # Copyright (C) 2002 Jan Kratochvil <project-captive@jankratochvil.net>
6
7 # This program is free software; you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; exactly version 2 of June 1991 is required
10
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20
21 require 5.6.0;  # at least 'use warnings;' but we need some 5.6.0+ modules anyway
22 use vars qw($VERSION);
23 $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
24 use strict;
25 use warnings;
26
27 use lib "./macros/";
28 use AutoGen;
29
30 use Carp qw(cluck confess);
31
32
33 AutoGen->run(
34                 "name"=>"captive",
35                 "COPYRIGHT_HOLDER"=>'Jan Kratochvil <project-captive@jankratochvil.net>',
36                 "ARGV"=>\@ARGV,
37                 "gtk-doc-dir"=>"./doc/apiref/",
38                 "clean"=>[qw(
39                                 .include_test_false.c
40                                 .include_test_all.stamp
41                                 ./ChangeLog.bak
42                                 ./doc/*-pod.*
43                                 ./doc/apiref/gtk-doc.make
44                                 ./doc/apiref/gtk-doc.make-captive
45                                 ./src/client/bug-replay/captive-bug-replay
46                                 ./src/client/cmdline/captive-cmdline
47                                 ./src/client/lufs/mount.captive
48                                 ./src/client/sandbox-server/captive-sandbox-server
49                                 ./src/client/gnomevfs/captive.conf
50                                 ./src/install/fstab/captive-install-fstab
51                                 ./src/libcaptive/cc/marshallers.[ch]
52                                 ./src/libcaptive/ke/exports.c
53                                 ./src/libcaptive/reactos/*/*.[cS]
54                                 ./src/libcaptive/sandbox/sandbox-common.c
55                                 ./src/libcaptive/sandbox/sandbox-skels.c
56                                 ./src/libcaptive/sandbox/sandbox-stubs.c
57                                 ./src/libcaptive/sandbox/sandbox.h
58                                 ./src/libcaptive/sandbox/sandbox-skelimpl.c
59                                 ./src/TraceFS/TraceFS-W32/obj
60                                 ./src/TraceFS/TraceFS-W32/objchk
61                                 ./src/TraceFS/TraceFS-W32/objfre
62                                 ./src/TraceFS/TraceFS-W32/buildchk.log
63                                 ./src/TraceFS/TraceFS-W32/buildchk.wrn
64                                 ./src/TraceFS/TraceFS-W32/buildchk.err
65                                 ./src/TraceFS/TraceFS-W32/buildfre.log
66                                 ./src/TraceFS/TraceFS-W32/buildfre.wrn
67                                 ./src/TraceFS/TraceFS-W32/buildfre.err
68                                 )],
69                 "prep"=>sub {
70                                 # For conflicting object basenames in convenient libraries:
71                                 AutoGen->checkcommandversion("libtoolize","1.5");
72                                 # 1.5 for AM_PROG_AS.
73                                 # 1.6 to prevent weird error wrt 'SANDBOX_IDL_SOURCES':
74                                 AutoGen->checkcommandversion("automake","1.6");
75
76                                 AutoGen::_system "gtkdocize --copy --docdir doc/apiref/";
77                                 for my $fname ("doc/apiref/gtk-doc.make") {
78                                         my $gtk_doc_make=AutoGen::_readfile $fname;
79                                         for my $keyword (qw(EXTRA_DIST CLEANFILES)) {
80                                                 $gtk_doc_make=~s/^$keyword =/$keyword +=/m or confess "$keyword not found in $fname";
81                                                 }
82                                         $gtk_doc_make=~s/^(dist-hook): dist-check-gtkdoc (dist-hook-local)$/$1: $2\n\nDISABLED_$&/m;
83                                         AutoGen::_writefile "$fname-captive",$gtk_doc_make;
84                                         }
85                                 1;
86                                 },
87                 );