Mercurial > hg > xemacs-beta
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 } |