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 } |
