blob: 0f2bc5b4905f6e5c473ac128be7696a89699bf5f [file] [log] [blame]
Alexandre Julliardf33f7f02001-09-17 20:09:08 +00001#!/usr/bin/perl -w
Alexandre Julliard7c3dec92001-06-08 19:09:44 +00002#
3# Update the dll dependencies in the dlls main Makefile.in.
4# Must be run in the dlls/ directory of the Wine tree.
5#
6# Copyright 2001 Alexandre Julliard
7#
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00008# This library is free software; you can redistribute it and/or
9# modify it under the terms of the GNU Lesser General Public
10# License as published by the Free Software Foundation; either
11# version 2.1 of the License, or (at your option) any later version.
12#
13# This library is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16# Lesser General Public License for more details.
17#
18# You should have received a copy of the GNU Lesser General Public
19# License along with this library; if not, write to the Free Software
20# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21#
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000022
Eric Pouechc0d955e2002-05-21 18:29:31 +000023use strict;
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000024
Eric Pouechc0d955e2002-05-21 18:29:31 +000025my $makefiles = `find . -name Makefile.in -print`;
26
Eric Pouechc0d955e2002-05-21 18:29:31 +000027my %directories = ();
Alexandre Julliard15ac6842005-05-10 13:21:04 +000028my %importlibs = ();
29my %static_implibs = ();
30my %staticlib_dirs = ();
Eric Pouechc0d955e2002-05-21 18:29:31 +000031my %altnames = ();
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000032
Alexandre Julliardf33f7f02001-09-17 20:09:08 +000033# list of special dlls that can be switched on or off by configure
Eric Pouechc0d955e2002-05-21 18:29:31 +000034my %special_dlls =
Alexandre Julliardf33f7f02001-09-17 20:09:08 +000035(
36 "ddraw" => "XFILES",
37 "glu32" => "GLU32FILES",
Jacek Cabanef799c42003-12-02 04:11:09 +000038 "glut32" => "GLUT32FILES",
Alexandre Julliardf33f7f02001-09-17 20:09:08 +000039 "opengl32" => "OPENGLFILES",
Alexandre Julliard7cbb3402002-09-29 18:07:25 +000040 "d3d8" => "OPENGLFILES",
Alexandre Julliardaa1bdc42003-07-01 01:11:13 +000041 "d3d9" => "OPENGLFILES",
Raphael Junqueirae31ae922002-12-17 01:15:15 +000042 "d3dx8" => "OPENGLFILES",
Raphael Junqueira01968612003-11-14 03:50:35 +000043 "wined3d" => "OPENGLFILES",
Alexandre Julliardf33f7f02001-09-17 20:09:08 +000044 "x11drv" => "XFILES"
45);
46
Eric Pouechc0d955e2002-05-21 18:29:31 +000047foreach my $i (split(/\s/,$makefiles))
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000048{
Eric Pouechc0d955e2002-05-21 18:29:31 +000049 my $module;
50
Alexandre Julliardedeee892002-08-09 01:22:40 +000051 next if $i =~ /\/tests\/Makefile.in/;
52
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000053 open MAKE,$i;
Eric Pouechc0d955e2002-05-21 18:29:31 +000054
55 $module = undef;
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000056 while (<MAKE>)
57 {
58 chop;
Eric Pouechc0d955e2002-05-21 18:29:31 +000059 # EPP hack to disable this DLL... the MKDLL_SKIP comment must appear
60 # at the very top of the Makefile.in
61 last if (/^\#\s*MKDLL_SKIP/);
62
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000063 if (/^MODULE\s*=\s*([a-zA-Z0-9_.]+)/)
64 {
65 $module = $1;
Alexandre Julliardc3eac432004-01-26 21:29:05 +000066 if ($module =~ /^lib.*\.a$/)
67 {
Alexandre Julliard15ac6842005-05-10 13:21:04 +000068 ($staticlib_dirs{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
Alexandre Julliardc3eac432004-01-26 21:29:05 +000069 }
70 else
71 {
72 ($directories{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
73 }
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000074 next;
75 }
Alexandre Julliard15ac6842005-05-10 13:21:04 +000076 if (/^IMPORTLIB\s*=\s*([a-zA-Z0-9_.]+)\.\$\(IMPLIBEXT\)/)
77 {
78 $importlibs{$module} = $1;
79 next;
80 }
81 if (/^IMPLIB_SRCS\s*=/)
82 {
83 $static_implibs{$module} = 1;
84 next;
85 }
Alexandre Julliard8be0edb2004-08-17 22:10:26 +000086 if (/^SPEC_SRCS16\s*=\s*(.*)/)
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000087 {
Alexandre Julliard8be0edb2004-08-17 22:10:26 +000088 my $specs = $1;
89 while ($specs =~ /\s*(.*)\\$/) { $specs = $1 . <MAKE>; }
90 my @list = split(/\s+/,$specs);
91 @list = map { $_ =~ s/\.spec$//; $_ .= ".dll" unless $_ =~ /\./; $_; } @list;
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000092 $altnames{$module} = \@list;
93 next;
94 }
95 }
Eric Pouechc0d955e2002-05-21 18:29:31 +000096 close MAKE;
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000097}
98
Alexandre Julliard7c3dec92001-06-08 19:09:44 +000099open NEWMAKE,">Makefile.in.new" or die "cannot create Makefile.in.new";
100
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000101################################################################
102# makefile header
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000103
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000104print NEWMAKE <<EOF;
105# Automatically generated by make_dlls; DO NOT EDIT!!
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000106
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000107TOPSRCDIR = \@top_srcdir\@
108TOPOBJDIR = ..
109SRCDIR = \@srcdir\@
110VPATH = \@srcdir\@
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000111
112EOF
113
114################################################################
115# output special dlls configure definitions
116
117printf NEWMAKE "# special configure-dependent targets\n\n";
118my %specials = ();
Eric Pouechc0d955e2002-05-21 18:29:31 +0000119foreach my $mod (sort keys %special_dlls)
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000120{
121 $specials{$special_dlls{$mod}} .= " " . $mod;
122}
Eric Pouechc0d955e2002-05-21 18:29:31 +0000123foreach my $i (sort keys %specials)
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000124{
125 printf NEWMAKE "%s =%s\n", $i, $specials{$i};
126}
127printf NEWMAKE "EXTRADIRS =";
Eric Pouechc0d955e2002-05-21 18:29:31 +0000128foreach my $i (sort keys %specials) { printf NEWMAKE " \@%s\@", $i; }
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000129printf NEWMAKE "\n\n";
130
131
132################################################################
133# output the subdirs list
134
Alexandre Julliard5852f7a2002-05-23 02:47:16 +0000135print NEWMAKE "# Subdir list\n\nBASEDIRS =";
Eric Pouechc0d955e2002-05-21 18:29:31 +0000136foreach my $dir (sort values %directories)
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000137{
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000138 next if defined($special_dlls{$dir}); # skip special dlls
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000139 printf NEWMAKE " \\\n\t%s", $dir;
140}
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000141
Alexandre Julliardfd758802005-08-25 12:15:06 +0000142printf NEWMAKE "\n\nIMPLIBSUBDIRS =";
143foreach my $dir (sort values %staticlib_dirs)
144{
145 printf NEWMAKE " \\\n\t%s", $dir;
146}
147
148printf NEWMAKE "\n\nSUBDIRS = \\\n\t\$(BASEDIRS) \\\n\t\$(IMPLIBSUBDIRS)";
149foreach my $dir (sort keys %special_dlls)
Alexandre Julliard5852f7a2002-05-23 02:47:16 +0000150{
151 printf NEWMAKE " \\\n\t%s", $dir;
152}
153printf NEWMAKE <<EOF;
154
155
156BUILDSUBDIRS = \$(BASEDIRS) \$(EXTRADIRS)
Alexandre Julliardf673b712002-06-14 23:48:27 +0000157
Alexandre Julliardfd758802005-08-25 12:15:06 +0000158INSTALLSUBDIRS = \$(BUILDSUBDIRS) \$(IMPLIBSUBDIRS)
Alexandre Julliard5852f7a2002-05-23 02:47:16 +0000159EOF
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000160
161################################################################
162# output the all: target
163
164my %targets = (); # use a hash to get rid of duplicate target names
Alexandre Julliardc728efc2002-10-02 02:34:09 +0000165my %targets16 = ();
Eric Pouechc0d955e2002-05-21 18:29:31 +0000166foreach my $mod (sort keys %directories)
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000167{
Alexandre Julliardc1bfca02002-03-20 22:19:06 +0000168 next if defined($special_dlls{$directories{$mod}}); # skip special dlls
Alexandre Julliardc2fbb402004-03-10 01:56:00 +0000169 $targets{$mod . ".so"} = 1;
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000170 next unless defined $altnames{$mod};
Eric Pouechc0d955e2002-05-21 18:29:31 +0000171 foreach my $i (sort @{$altnames{$mod}})
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000172 {
Alexandre Julliardaed49d42006-02-16 13:44:38 +0100173 $targets16{$i . "16"} = $mod;
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000174 }
175}
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000176foreach my $mod (sort keys %staticlib_dirs) { $targets{$mod} = 1; }
Alexandre Julliardc3eac432004-01-26 21:29:05 +0000177
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000178print NEWMAKE <<EOF;
179
Alexandre Julliardc1bfca02002-03-20 22:19:06 +0000180\@MAKE_RULES\@
181
Alexandre Julliard23829be2003-05-15 04:30:46 +0000182# Symbolic links
183
Alexandre Julliardc728efc2002-10-02 02:34:09 +0000184WIN16_FILES = \\
185EOF
186printf NEWMAKE "\t%s\n", join( " \\\n\t", sort keys %targets16 );
187
188print NEWMAKE <<EOF;
189
Alexandre Julliardc2fbb402004-03-10 01:56:00 +0000190SYMLINKS_SO = \\
191 \$(EXTRADIRS:%=%.dll.so) \\
Alexandre Julliardc728efc2002-10-02 02:34:09 +0000192 \@WIN16_FILES\@ \\
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000193EOF
194printf NEWMAKE "\t%s\n", join( " \\\n\t", sort keys %targets );
195
Alexandre Julliard23829be2003-05-15 04:30:46 +0000196print NEWMAKE <<EOF;
197
198# Main target
199
Alexandre Julliardc2fbb402004-03-10 01:56:00 +0000200all: symlinks\$(DLLEXT)
201
202.PHONY: symlinks symlinks.so implib
203
204symlinks.so: \$(SYMLINKS_SO)
205
206symlinks: \$(BUILDSUBDIRS)
207
Alexandre Julliardc3116c52005-05-06 19:38:50 +0000208x11drv.dll.so: winex11.drv.so
209 \$(RM) \$@ && \$(LN_S) winex11.drv.so \$@
210
Alexandre Julliard23829be2003-05-15 04:30:46 +0000211EOF
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000212
213################################################################
214# output the lib name -> directory rules
215
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000216print NEWMAKE <<EOF;
217
Alexandre Julliard45a795c2002-05-23 19:13:22 +0000218# Map symlink name to the corresponding library
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000219
220EOF
221
Eric Pouechc0d955e2002-05-21 18:29:31 +0000222foreach my $mod (sort keys %directories)
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000223{
Alexandre Julliardc2fbb402004-03-10 01:56:00 +0000224 printf NEWMAKE "%s.so: %s/%s.so\n", $mod, $directories{$mod}, $mod;
225 printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s.so \$@\n\n", $directories{$mod}, $mod;
Alexandre Julliard03b47d22004-01-02 20:54:03 +0000226
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000227 if (defined $altnames{$mod})
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000228 {
Alexandre Julliard03b47d22004-01-02 20:54:03 +0000229 my $count = 0;
Eric Pouechc0d955e2002-05-21 18:29:31 +0000230 foreach my $i (sort @{$altnames{$mod}})
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000231 {
Alexandre Julliard03b47d22004-01-02 20:54:03 +0000232 if ($count++ == 3) { printf NEWMAKE "\\\n "; $count = 1; }
Alexandre Julliardaed49d42006-02-16 13:44:38 +0100233 printf NEWMAKE "%s16 ", $i;
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000234 }
Alexandre Julliardc2fbb402004-03-10 01:56:00 +0000235 printf NEWMAKE ": %s.so\n", $mod;
Alexandre Julliardaed49d42006-02-16 13:44:38 +0100236 printf NEWMAKE "\techo \"%s\" >\$\@\n\n", $mod;
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000237 }
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000238}
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000239foreach my $mod (sort keys %staticlib_dirs)
Alexandre Julliardc3eac432004-01-26 21:29:05 +0000240{
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000241 printf NEWMAKE "%s: %s/%s\n", $mod, $staticlib_dirs{$mod}, $mod;
242 printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s \$@\n\n", $staticlib_dirs{$mod}, $mod;
Alexandre Julliardc3eac432004-01-26 21:29:05 +0000243}
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000244
245################################################################
Alexandre Julliardada5e652002-12-12 22:03:14 +0000246# output the import libraries rules
247
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000248print NEWMAKE "\n# Import libraries\n\n";
249print NEWMAKE "STATIC_IMPLIBEXT = \$(IMPLIBEXT:def=def.a)\n\n";
Alexandre Julliardada5e652002-12-12 22:03:14 +0000250
Alexandre Julliard12c9b502005-08-26 08:52:06 +0000251my @lib_symlinks = ();
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000252foreach my $mod (sort keys %importlibs)
Alexandre Julliardada5e652002-12-12 22:03:14 +0000253{
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000254 my $dir = $directories{$mod};
255 my $lib = $importlibs{$mod};
256 if ($lib ne "lib" . $dir) { push @lib_symlinks, $mod; }
Alexandre Julliardada5e652002-12-12 22:03:14 +0000257}
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000258print NEWMAKE "IMPORT_SYMLINKS =";
259foreach my $mod (sort @lib_symlinks)
260{
261 printf NEWMAKE " \\\n\t%s.\$(IMPLIBEXT)", $importlibs{$mod};
262}
263foreach my $mod (sort keys %staticlib_dirs)
Alexandre Julliardc3eac432004-01-26 21:29:05 +0000264{
265 printf NEWMAKE " \\\n\t%s", $mod;
266}
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000267
268print NEWMAKE "\n\nIMPORT_LIBS = \\\n\t\$(IMPORT_SYMLINKS)";
269foreach my $mod (sort keys %importlibs)
270{
271 my $dir = $directories{$mod};
272 my $def = $mod;
273 $def =~ s/\.(dll|drv)$//;
274 printf NEWMAKE " \\\n\t%s/lib%s.\$(IMPLIBEXT)", $dir, $def;
275 printf NEWMAKE " \\\n\t%s/lib%s.\$(STATIC_IMPLIBEXT)", $dir, $def if $static_implibs{$mod};
276}
Alexandre Julliardada5e652002-12-12 22:03:14 +0000277print NEWMAKE "\n\n";
Alexandre Julliard06233cf2004-08-11 20:59:09 +0000278print NEWMAKE "implib: \$(IMPORT_LIBS)\n\n";
Alexandre Julliardada5e652002-12-12 22:03:14 +0000279
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000280foreach my $mod (sort keys %importlibs)
Alexandre Julliardada5e652002-12-12 22:03:14 +0000281{
282 my $dir = $directories{$mod};
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000283 my $lib = $importlibs{$mod};
Alexandre Julliardada5e652002-12-12 22:03:14 +0000284 my $spec = $mod;
285 $spec =~ s/\.dll$//;
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000286 printf NEWMAKE "%s/%s.\$(IMPLIBEXT): %s/%s.spec \$(WINEBUILD)\n", $dir, $lib, $dir, $spec;
287 printf NEWMAKE "\t\@cd %s && \$(MAKE) %s.\$(IMPLIBEXT)\n\n", $dir, $lib;
288 next unless $static_implibs{$mod};
289 printf NEWMAKE "%s/%s.\$(STATIC_IMPLIBEXT): dummy\n", $dir, $lib, $dir, $spec;
290 printf NEWMAKE "\t\@cd %s && \$(MAKE) %s.\$(STATIC_IMPLIBEXT)\n\n", $dir, $lib;
291}
292foreach my $mod (sort @lib_symlinks)
293{
294 my $dir = $directories{$mod};
295 my $lib = $importlibs{$mod} . ".\$(IMPLIBEXT)";
296 printf NEWMAKE "%s: %s/%s\n", $lib, $dir, $lib;
297 printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s \$@\n\n", $dir, $lib;
Alexandre Julliardada5e652002-12-12 22:03:14 +0000298}
Alexandre Julliardada5e652002-12-12 22:03:14 +0000299
300print NEWMAKE <<EOF;
Alexandre Julliard06233cf2004-08-11 20:59:09 +0000301\$(BUILDSUBDIRS): \$(IMPORT_LIBS)
Alexandre Julliard71ff4c42005-05-13 13:57:55 +0000302\$(INSTALLSUBDIRS:%=%/__install__) \$(INSTALLSUBDIRS:%=%/__install-lib__): \$(IMPORT_LIBS)
Alexandre Julliardada5e652002-12-12 22:03:14 +0000303
304EOF
305
306################################################################
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000307# output the inter-dll dependencies and rules
308
Alexandre Julliard45a795c2002-05-23 19:13:22 +0000309print NEWMAKE "# Map library name to the corresponding directory\n\n";
310
311foreach my $mod (sort keys %directories)
312{
Alexandre Julliardc2fbb402004-03-10 01:56:00 +0000313 printf NEWMAKE "%s/%s.so: %s\n", $directories{$mod}, $mod, $directories{$mod};
Alexandre Julliard45a795c2002-05-23 19:13:22 +0000314}
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000315foreach my $mod (sort keys %staticlib_dirs)
Alexandre Julliardc3eac432004-01-26 21:29:05 +0000316{
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000317 printf NEWMAKE "%s/%s: %s\n", $staticlib_dirs{$mod}, $mod, $staticlib_dirs{$mod};
Alexandre Julliardc3eac432004-01-26 21:29:05 +0000318}
Alexandre Julliard45a795c2002-05-23 19:13:22 +0000319
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000320################################################################
321# makefile trailer
322
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000323print NEWMAKE <<EOF;
Alexandre Julliardc3eac432004-01-26 21:29:05 +0000324
Alexandre Julliard78e33112003-04-12 00:05:27 +0000325# Rules for auto documentation
326
327\$(SUBDIRS:%=%/__man__): dummy
328 cd `dirname \$@` && \$(MAKE) man
329
330man: \$(SUBDIRS:%=%/__man__)
331
332\$(SUBDIRS:%=%/__doc_html__): dummy
333 cd `dirname \$@` && \$(MAKE) doc-html
334
335doc-html: \$(SUBDIRS:%=%/__doc_html__)
336
337\$(SUBDIRS:%=%/__doc_sgml__): dummy
338 cd `dirname \$@` && \$(MAKE) doc-sgml
339
340doc-sgml: \$(SUBDIRS:%=%/__doc_sgml__)
341
Alexandre Julliardc2fbb402004-03-10 01:56:00 +0000342.PHONY: man doc-html doc-sgml \$(SUBDIRS:%=%/__man__) \$(SUBDIRS:%=%/__doc_html__) \$(SUBDIRS:%=%/__doc_sgml__)
Alexandre Julliard78e33112003-04-12 00:05:27 +0000343
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000344# Misc rules
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000345
Alexandre Julliard34fa35d2005-05-09 14:42:30 +0000346install-lib:: \$(INSTALLSUBDIRS:%=%/__install-lib__)
Alexandre Julliardada5e652002-12-12 22:03:14 +0000347
Alexandre Julliard34fa35d2005-05-09 14:42:30 +0000348install-dev:: \$(INSTALLSUBDIRS:%=%/__install-dev__)
Alexandre Julliarde8dae9c2003-10-11 01:00:35 +0000349
Alexandre Julliardf673b712002-06-14 23:48:27 +0000350uninstall::
Mike Frysinger53928442006-02-14 13:51:38 +0100351 -rmdir \$(DESTDIR)\$(dlldir)
Alexandre Julliardf33f7f02001-09-17 20:09:08 +0000352
Alexandre Julliardada5e652002-12-12 22:03:14 +0000353clean::
Alexandre Julliard15ac6842005-05-10 13:21:04 +0000354 \$(RM) \$(IMPORT_SYMLINKS)
Alexandre Julliardada5e652002-12-12 22:03:14 +0000355
Alexandre Julliard5852f7a2002-05-23 02:47:16 +0000356check test:: \$(BUILDSUBDIRS:%=%/__test__)
Alexandre Julliard93841842002-01-14 19:56:46 +0000357
Alexandre Julliardc3c587e2002-09-06 19:46:00 +0000358crosstest:: \$(BUILDSUBDIRS:%=%/__crosstest__)
359
Alexandre Julliard5852f7a2002-05-23 02:47:16 +0000360checklink:: \$(BUILDSUBDIRS:%=%/__checklink__)
Alexandre Julliardf673b712002-06-14 23:48:27 +0000361
Alexandre Julliardf673b712002-06-14 23:48:27 +0000362### Dependencies:
Alexandre Julliard7c3dec92001-06-08 19:09:44 +0000363EOF
364
365close NEWMAKE;
366rename "Makefile.in.new", "Makefile.in";
367printf "Successfully updated Makefile.in\n";