comparison nt/make-nt-depend @ 796:7a6013500383

[xemacs-hg @ 2002-03-29 11:12:44 by jhar] Hopefully finally solve win32 dependency quoting fiasco
author jhar
date Fri, 29 Mar 2002 11:12:44 +0000
parents
children 184461bc8de4
comparison
equal deleted inserted replaced
795:68d4a70c1558 796:7a6013500383
1 : #-*- Perl -*-
2
3 # Generate dependency info in a form acceptable to nmake
4 #
5 # Copyright (C) 2000, 2002 Jonathan Harris.
6 #
7 # This file is part of XEmacs.
8 #
9 # XEmacs is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by the
11 # Free Software Foundation; either version 2, or (at your option) any
12 # later version.
13 #
14 # XEmacs is distributed in the hope that it will be useful, but WITHOUT
15 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 # for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with XEmacs; see the file COPYING. If not, write to
21 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 # Boston, MA 02111-1307, USA.
23 #
24 # Author: Jonathan Harris <jonathan@xemacs.org>
25 #
26 # Synched up with: Not in FSF.
27
28 use Getopt::Long;
29
30 my $optsok = GetOptions ('src=s' => \$src,
31 'config=s' => \$config,
32 'obj=s' => \$obj);
33
34 die "Generates nmake dependencies for the XEmacs src directory.
35
36 Usage: $0 --src SRCDIR --config CONFIGDIR --obj OBJDIR
37
38 SRCDIR Location of XEmacs sources
39 CONFIGDIR Location of config.inc
40 OBJDIR Location for compiler-generated object files
41
42 Expects output from src/make-src-depend on stdin.
43 The dependencies are written to stdout.
44 " if (@ARGV || !$optsok
45 || !defined ($src) || !defined ($config) || !defined ($obj));
46
47 while (<>)
48 {
49 # rewrite references to generating script
50 s/make-src-depend/make-nt-depend/;
51
52 # rewrite '#if defined(...)' into nmake syntax
53 s/^#if defined(.+)/!if defined$1/;
54
55 # rewrite '#else' and '#endif' into nmake syntax
56 s/^#e/!e/;
57
58 # add src path to source filenames
59 # allow for source filename being used in variable assignment
60 s/([\s=])([\w\d\.\-]+\.[ch])/$1$src\\$2/g;
61
62 # add obj path to object filenames
63 # rewrite .o to .obj
64 # add dependency on config.inc to all objects (this might be too broad)
65 s/^(.+)\.o:(.+)/$obj\\$1.obj:$2 $config\\config.inc/;
66
67 print;
68 }