makefiles: Generate the static library rules from configure.
diff --git a/aclocal.m4 b/aclocal.m4
index b30e41e..a603833 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -215,7 +215,13 @@
dnl Usage: WINE_CONFIG_LIB(name)
dnl
AC_DEFUN([WINE_CONFIG_LIB],
-[WINE_CONFIG_MAKEFILE([dlls/$1/Makefile],[dlls/Makeimplib.rules],[dlls],[ALL_IMPLIB_DIRS])])
+[ALL_STATIC_LIBS="$ALL_STATIC_LIBS \\
+ $1/lib$1.a"
+ALL_IMPORTLIB_RULES="$ALL_IMPORTLIB_RULES
+$1/lib$1.a: $1
+$1/lib$1.cross.a: dummy
+ @cd $1 && \$(MAKE) lib$1.cross.a"
+WINE_CONFIG_MAKEFILE([dlls/$1/Makefile],[dlls/Makeimplib.rules],[dlls],[ALL_IMPLIB_DIRS])])
dnl **** Add a message to the list displayed at the end ****
dnl
diff --git a/configure b/configure
index 9eabf3c..75828ce 100755
--- a/configure
+++ b/configure
@@ -601,6 +601,8 @@
ALL_PROGRAM_INSTALL_DIRS
ALL_PROGRAM_DIRS
ALL_TEST_DIRS
+ALL_IMPORTLIB_RULES
+ALL_STATIC_LIBS
ALL_IMPLIB_DIRS
ALL_DLL_DIRS
ALL_TOP_DIRS
@@ -13604,6 +13606,10 @@
ALL_IMPLIB_DIRS=""
+ALL_STATIC_LIBS=""
+
+ALL_IMPORTLIB_RULES=""
+
ALL_TEST_DIRS=""
ALL_PROGRAM_DIRS=""
@@ -13713,6 +13719,12 @@
dlls/actxprxy/Makefile: dlls/actxprxy/Makefile.in dlls/Makedll.rules"
ac_config_files="$ac_config_files dlls/actxprxy/Makefile"
+ALL_STATIC_LIBS="$ALL_STATIC_LIBS \\
+ adsiid/libadsiid.a"
+ALL_IMPORTLIB_RULES="$ALL_IMPORTLIB_RULES
+adsiid/libadsiid.a: adsiid
+adsiid/libadsiid.cross.a: dummy
+ @cd adsiid && \$(MAKE) libadsiid.cross.a"
ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/adsiid/Makefile"
test "x$enable_adsiid" != xno && ALL_IMPLIB_DIRS="$ALL_IMPLIB_DIRS \\
@@ -14697,6 +14709,12 @@
dlls/dxdiagn/tests/Makefile: dlls/dxdiagn/tests/Makefile.in dlls/Maketest.rules"
ac_config_files="$ac_config_files dlls/dxdiagn/tests/Makefile"
+ALL_STATIC_LIBS="$ALL_STATIC_LIBS \\
+ dxerr8/libdxerr8.a"
+ALL_IMPORTLIB_RULES="$ALL_IMPORTLIB_RULES
+dxerr8/libdxerr8.a: dxerr8
+dxerr8/libdxerr8.cross.a: dummy
+ @cd dxerr8 && \$(MAKE) libdxerr8.cross.a"
ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/dxerr8/Makefile"
test "x$enable_dxerr8" != xno && ALL_IMPLIB_DIRS="$ALL_IMPLIB_DIRS \\
@@ -14705,6 +14723,12 @@
dlls/dxerr8/Makefile: dlls/dxerr8/Makefile.in dlls/Makeimplib.rules"
ac_config_files="$ac_config_files dlls/dxerr8/Makefile"
+ALL_STATIC_LIBS="$ALL_STATIC_LIBS \\
+ dxerr9/libdxerr9.a"
+ALL_IMPORTLIB_RULES="$ALL_IMPORTLIB_RULES
+dxerr9/libdxerr9.a: dxerr9
+dxerr9/libdxerr9.cross.a: dummy
+ @cd dxerr9 && \$(MAKE) libdxerr9.cross.a"
ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/dxerr9/Makefile"
test "x$enable_dxerr9" != xno && ALL_IMPLIB_DIRS="$ALL_IMPLIB_DIRS \\
@@ -14729,6 +14753,12 @@
dlls/dxgi/tests/Makefile: dlls/dxgi/tests/Makefile.in dlls/Maketest.rules"
ac_config_files="$ac_config_files dlls/dxgi/tests/Makefile"
+ALL_STATIC_LIBS="$ALL_STATIC_LIBS \\
+ dxguid/libdxguid.a"
+ALL_IMPORTLIB_RULES="$ALL_IMPORTLIB_RULES
+dxguid/libdxguid.a: dxguid
+dxguid/libdxguid.cross.a: dummy
+ @cd dxguid && \$(MAKE) libdxguid.cross.a"
ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/dxguid/Makefile"
test "x$enable_dxguid" != xno && ALL_IMPLIB_DIRS="$ALL_IMPLIB_DIRS \\
@@ -16601,6 +16631,12 @@
dlls/stress.dll16/Makefile: dlls/stress.dll16/Makefile.in dlls/Makedll.rules"
ac_config_files="$ac_config_files dlls/stress.dll16/Makefile"
+ALL_STATIC_LIBS="$ALL_STATIC_LIBS \\
+ strmiids/libstrmiids.a"
+ALL_IMPORTLIB_RULES="$ALL_IMPORTLIB_RULES
+strmiids/libstrmiids.a: strmiids
+strmiids/libstrmiids.cross.a: dummy
+ @cd strmiids && \$(MAKE) libstrmiids.cross.a"
ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/strmiids/Makefile"
test "x$enable_strmiids" != xno && ALL_IMPLIB_DIRS="$ALL_IMPLIB_DIRS \\
@@ -16793,6 +16829,12 @@
dlls/usp10/tests/Makefile: dlls/usp10/tests/Makefile.in dlls/Maketest.rules"
ac_config_files="$ac_config_files dlls/usp10/tests/Makefile"
+ALL_STATIC_LIBS="$ALL_STATIC_LIBS \\
+ uuid/libuuid.a"
+ALL_IMPORTLIB_RULES="$ALL_IMPORTLIB_RULES
+uuid/libuuid.a: uuid
+uuid/libuuid.cross.a: dummy
+ @cd uuid && \$(MAKE) libuuid.cross.a"
ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/uuid/Makefile"
test "x$enable_uuid" != xno && ALL_IMPLIB_DIRS="$ALL_IMPLIB_DIRS \\
@@ -17001,6 +17043,12 @@
dlls/winecoreaudio.drv/Makefile: dlls/winecoreaudio.drv/Makefile.in dlls/Makedll.rules"
ac_config_files="$ac_config_files dlls/winecoreaudio.drv/Makefile"
+ALL_STATIC_LIBS="$ALL_STATIC_LIBS \\
+ winecrt0/libwinecrt0.a"
+ALL_IMPORTLIB_RULES="$ALL_IMPORTLIB_RULES
+winecrt0/libwinecrt0.a: winecrt0
+winecrt0/libwinecrt0.cross.a: dummy
+ @cd winecrt0 && \$(MAKE) libwinecrt0.cross.a"
ALL_MAKEFILES="$ALL_MAKEFILES \\
dlls/winecrt0/Makefile"
test "x$enable_winecrt0" != xno && ALL_IMPLIB_DIRS="$ALL_IMPLIB_DIRS \\
diff --git a/configure.ac b/configure.ac
index 4e9d263..158aafb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2091,6 +2091,8 @@
AC_SUBST(ALL_TOP_DIRS,"")
AC_SUBST(ALL_DLL_DIRS,"")
AC_SUBST(ALL_IMPLIB_DIRS,"")
+AC_SUBST(ALL_STATIC_LIBS,"")
+AC_SUBST(ALL_IMPORTLIB_RULES,"")
AC_SUBST(ALL_TEST_DIRS,"")
AC_SUBST(ALL_PROGRAM_DIRS,"")
AC_SUBST(ALL_PROGRAM_INSTALL_DIRS,"")
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 20dcb22..361e5fb 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -31,15 +31,9 @@
libwinspool.$(IMPLIBEXT) \
libxinput.$(IMPLIBEXT)
-IMPORT_LIBS = \
+STATIC_LIBS = @ALL_STATIC_LIBS@
+IMPORT_LIBS = $(STATIC_LIBS) \
$(IMPORT_SYMLINKS) \
- adsiid/libadsiid.a \
- dxerr8/libdxerr8.a \
- dxerr9/libdxerr9.a \
- dxguid/libdxguid.a \
- strmiids/libstrmiids.a \
- uuid/libuuid.a \
- winecrt0/libwinecrt0.a \
aclui/libaclui.$(IMPLIBEXT) \
activeds/libactiveds.$(IMPLIBEXT) \
advapi32/libadvapi32.$(IMPLIBEXT) \
@@ -184,17 +178,10 @@
wtsapi32/libwtsapi32.$(IMPLIBEXT) \
xinput1_3/libxinput.$(IMPLIBEXT)
-CROSS_IMPLIBS = \
+CROSS_IMPLIBS = $(STATIC_LIBS:.a=.cross.a) \
libd3dx9.cross.a \
libwinspool.cross.a \
libxinput.cross.a \
- adsiid/libadsiid.cross.a \
- dxerr8/libdxerr8.cross.a \
- dxerr9/libdxerr9.cross.a \
- dxguid/libdxguid.cross.a \
- strmiids/libstrmiids.cross.a \
- uuid/libuuid.cross.a \
- winecrt0/libwinecrt0.cross.a \
aclui/libaclui.cross.a \
activeds/libactiveds.cross.a \
advapi32/libadvapi32.cross.a \
@@ -812,36 +799,7 @@
$(BUILDSUBDIRS): $(IMPORT_LIBS)
$(INSTALLSUBDIRS:%=%/__install__) $(INSTALLSUBDIRS:%=%/__install-lib__): $(IMPORT_LIBS)
-# Map library name to the corresponding directory
-
-adsiid/libadsiid.a: adsiid
-adsiid/libadsiid.cross.a: dummy
- @cd adsiid && $(MAKE) libadsiid.cross.a
-
-dxerr8/libdxerr8.a: dxerr8
-dxerr8/libdxerr8.cross.a: dummy
- @cd dxerr8 && $(MAKE) libdxerr8.cross.a
-
-dxerr9/libdxerr9.a: dxerr9
-dxerr9/libdxerr9.cross.a: dummy
- @cd dxerr9 && $(MAKE) libdxerr9.cross.a
-
-dxguid/libdxguid.a: dxguid
-dxguid/libdxguid.cross.a: dummy
- @cd dxguid && $(MAKE) libdxguid.cross.a
-
-strmiids/libstrmiids.a: strmiids
-strmiids/libstrmiids.cross.a: dummy
- @cd strmiids && $(MAKE) libstrmiids.cross.a
-
-uuid/libuuid.a: uuid
-uuid/libuuid.cross.a: dummy
- @cd uuid && $(MAKE) libuuid.cross.a
-
-winecrt0/libwinecrt0.a: winecrt0
-winecrt0/libwinecrt0.cross.a: dummy
- @cd winecrt0 && $(MAKE) libwinecrt0.cross.a
-
+@ALL_IMPORTLIB_RULES@
# Misc rules
diff --git a/tools/make_makefiles b/tools/make_makefiles
index 9b5dc43..029994e 100755
--- a/tools/make_makefiles
+++ b/tools/make_makefiles
@@ -509,27 +509,20 @@
$text .= sprintf " \\\n\tlib%s.\$(IMPLIBEXT)", $importlibs{$mod};
}
- $text .= "\n\nIMPORT_LIBS = \\\n\t\$(IMPORT_SYMLINKS)";
- foreach my $mod (sort keys %staticlib_dirs)
- {
- $text .= sprintf " \\\n\t%s/lib%s.a", $staticlib_dirs{$mod}, $mod;
- }
+ $text .= "\n\nSTATIC_LIBS = \@ALL_STATIC_LIBS\@\n";
+ $text .= "IMPORT_LIBS = \$(STATIC_LIBS) \\\n\t\$(IMPORT_SYMLINKS)";
foreach my $mod (sort keys %importlibs)
{
$text .= " \\\n\t$directories{$mod}/lib$importlibs{$mod}.\$(IMPLIBEXT)";
next unless defined $static_implibs{$mod};
$text .= " \\\n\t$directories{$mod}/lib$importlibs{$mod}.\$(STATIC_IMPLIBEXT)";
}
- $text .= "\n\nCROSS_IMPLIBS =";
+ $text .= "\n\nCROSS_IMPLIBS = \$(STATIC_LIBS:.a=.cross.a)";
foreach my $mod (sort @lib_symlinks)
{
next if $mod =~ /16$/;
$text .= sprintf " \\\n\tlib%s.cross.a", $importlibs{$mod};
}
- foreach my $mod (sort keys %staticlib_dirs)
- {
- $text .= sprintf " \\\n\t%s/lib%s.cross.a", $staticlib_dirs{$mod}, $mod;
- }
foreach my $mod (sort keys %importlibs)
{
next if $mod =~ /16$/;
@@ -576,18 +569,7 @@
$text .= "\$(BUILDSUBDIRS): \$(IMPORT_LIBS)\n";
$text .= "\$(INSTALLSUBDIRS:%=%/__install__) \$(INSTALLSUBDIRS:%=%/__install-lib__): \$(IMPORT_LIBS)\n\n";
-
- # output the inter-dll dependencies and rules
-
- $text .= "# Map library name to the corresponding directory\n\n";
-
- foreach my $mod (sort keys %staticlib_dirs)
- {
- my $dir = $staticlib_dirs{$mod};
- $text .= sprintf "%s/lib%s.a: %s\n", $staticlib_dirs{$mod}, $mod, $staticlib_dirs{$mod};
- $text .= sprintf "%s/lib%s.cross.a: dummy\n", $dir, $mod;
- $text .= sprintf "\t\@cd %s && \$(MAKE) lib%s.cross.a\n\n", $dir, $mod;
- }
+ $text .= "\@ALL_IMPORTLIB_RULES\@\n";
$text .= "\n# Misc rules\n";
replace_in_file( "dlls/Makefile.in",