Bootstrap of 'captive-install-acquire' for W32 modules acquiration process.
[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/install/acquire/captive-install-acquire
52                                 ./src/libcaptive/cc/marshallers.[ch]
53                                 ./src/libcaptive/ke/exports.c
54                                 ./src/libcaptive/reactos/*/*.[cS]
55                                 ./src/libcaptive/sandbox/sandbox-common.c
56                                 ./src/libcaptive/sandbox/sandbox-skels.c
57                                 ./src/libcaptive/sandbox/sandbox-stubs.c
58                                 ./src/libcaptive/sandbox/sandbox.h
59                                 ./src/libcaptive/sandbox/sandbox-skelimpl.c
60                                 ./src/TraceFS/TraceFS-W32/obj
61                                 ./src/TraceFS/TraceFS-W32/objchk
62                                 ./src/TraceFS/TraceFS-W32/objfre
63                                 ./src/TraceFS/TraceFS-W32/buildchk.log
64                                 ./src/TraceFS/TraceFS-W32/buildchk.wrn
65                                 ./src/TraceFS/TraceFS-W32/buildchk.err
66                                 ./src/TraceFS/TraceFS-W32/buildfre.log
67                                 ./src/TraceFS/TraceFS-W32/buildfre.wrn
68                                 ./src/TraceFS/TraceFS-W32/buildfre.err
69                                 )],
70                 "prep"=>sub {
71                                 # For conflicting object basenames in convenient libraries:
72                                 AutoGen->checkcommandversion("libtoolize","1.5");
73                                 # 1.5 for AM_PROG_AS.
74                                 # 1.6 to prevent weird error wrt 'SANDBOX_IDL_SOURCES':
75                                 AutoGen->checkcommandversion("automake","1.6");
76
77                                 AutoGen::_system "gtkdocize --copy --docdir doc/apiref/";
78                                 for my $fname ("doc/apiref/gtk-doc.make") {
79                                         my $gtk_doc_make=AutoGen::_readfile $fname;
80                                         for my $keyword (qw(EXTRA_DIST CLEANFILES)) {
81                                                 $gtk_doc_make=~s/^$keyword =/$keyword +=/m or confess "$keyword not found in $fname";
82                                                 }
83                                         $gtk_doc_make=~s/^(dist-hook): dist-check-gtkdoc (dist-hook-local)$/$1: $2\n\nDISABLED_$&/m;
84                                         AutoGen::_writefile "$fname-captive",$gtk_doc_make;
85                                         }
86                                 for my $dir ("./src/install/acquire/cabextract") {
87                                         if (!-f "$dir/cabextract.c" || -f "$dir/configure.in") {
88                                                 do { system $_ and die "$_: $!"; } for ("cvs co -A $dir");
89                                                 }
90                                         }
91                                 1;
92                                 },
93                 );