Module: wine Branch: master Commit: b6c275b1b4f2d4d942e7bd011172081f367c25cc URL: http://source.winehq.org/git/wine.git/?a=commit;h=b6c275b1b4f2d4d942e7bd0111...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Jan 26 20:40:12 2010 +0100
makefiles: Generate the static library rules from configure.
---
aclocal.m4 | 8 +++++++- configure | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 2 ++ dlls/Makefile.in | 50 ++++---------------------------------------------- tools/make_makefiles | 26 ++++---------------------- 5 files changed, 65 insertions(+), 69 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4 index b30e41e..a603833 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -215,7 +215,13 @@ dnl 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_BIN_INSTALL_DIRS 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_DLL_DIRS=""
ALL_IMPLIB_DIRS=""
+ALL_STATIC_LIBS="" + +ALL_IMPORTLIB_RULES="" + ALL_TEST_DIRS=""
ALL_PROGRAM_DIRS="" @@ -13713,6 +13719,12 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS 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 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS 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 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS 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 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS 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 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS 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 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS 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 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS 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_MAKEFILE_DEPENDS,["# Makefile dependencies"]) 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 @@ IMPORT_SYMLINKS = \ 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 @@ IMPORT_LIBS = \ 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 @@ libxinput.def: xinput1_3/libxinput.def $(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 @@ sub update_dlls(@) $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 @@ sub update_dlls(@)
$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",