Alexandre Julliard : makefiles: Generate rules for building the libwine import library.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Nov 12 09:58:28 CST 2015


Module: wine
Branch: master
Commit: 79c852340c63a68c378c2059e1ffe73ad6d891ad
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=79c852340c63a68c378c2059e1ffe73ad6d891ad

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Nov 12 23:19:24 2015 +0900

makefiles: Generate rules for building the libwine import library.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 configure       | 15 ++-------------
 configure.ac    | 15 ++-------------
 tools/makedep.c | 14 ++++++++++++++
 3 files changed, 18 insertions(+), 26 deletions(-)

diff --git a/configure b/configure
index e83ca7b..4fecf62 100755
--- a/configure
+++ b/configure
@@ -7986,23 +7986,12 @@ fi
 
     LIBWINE_RULES="
 SHAREDLIB = libwine.dll
+IMPORTLIB = libwine.a
 INSTALL_LIB = libwine.dll
+INSTALL_DEV = libwine.a
 libwine_LDFLAGS = -shared \$(srcdir)/wine.def
 
-EXTRA_TARGETS = libwine.a
-
-all: libwine.a
-
-libwine.a: \$(srcdir)/wine.def
-	\$(DLLTOOL) -l \$@ -d \$(srcdir)/wine.def
-
 libwine.dll: \$(srcdir)/wine.def
-
-install install-dev:: libwine.a
-	\$(INSTALL_DATA) libwine.a \$(DESTDIR)\$(libdir)/libwine.a
-
-uninstall::
-	\$(RM) \$(DESTDIR)\$(libdir)/libwine.a
 "
 
     ;;
diff --git a/configure.ac b/configure.ac
index 372d06e..48268b0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -719,23 +719,12 @@ case $host_os in
 
     AC_SUBST(LIBWINE_RULES,["
 SHAREDLIB = libwine.dll
+IMPORTLIB = libwine.a
 INSTALL_LIB = libwine.dll
+INSTALL_DEV = libwine.a
 libwine_LDFLAGS = -shared \$(srcdir)/wine.def 
 
-EXTRA_TARGETS = libwine.a
-
-all: libwine.a
-
-libwine.a: \$(srcdir)/wine.def
-	\$(DLLTOOL) -l \$@ -d \$(srcdir)/wine.def
-
 libwine.dll: \$(srcdir)/wine.def
-
-install install-dev:: libwine.a
-	\$(INSTALL_DATA) libwine.a \$(DESTDIR)\$(libdir)/libwine.a
-
-uninstall::
-	\$(RM) \$(DESTDIR)\$(libdir)/libwine.a
 "])
     ;;
 
diff --git a/tools/makedep.c b/tools/makedep.c
index f037d6b..023c0ec 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -145,6 +145,7 @@ static const char *fontforge;
 static const char *convert;
 static const char *rsvg;
 static const char *icotool;
+static const char *dlltool;
 
 struct makefile
 {
@@ -2612,6 +2613,18 @@ static struct strarray output_sources( const struct makefile *make, struct strar
         strarray_addall( &all_targets, names );
     }
 
+    if (make->importlib && !make->module)  /* stand-alone import lib (for libwine) */
+    {
+        char *def_file = replace_extension( make->importlib, ".a", ".def" );
+
+        if (!strncmp( def_file, "lib", 3 )) def_file += 3;
+        output( "%s: %s\n", obj_dir_path( make, make->importlib ), src_dir_path( make, def_file ));
+        output( "\t%s -l $@ -d %s\n", dlltool, src_dir_path( make, def_file ));
+        add_install_rule( make, install_rules, make->importlib, make->importlib,
+                          strmake( "d$(libdir)/%s", make->importlib ));
+        strarray_add( &all_targets, make->importlib );
+    }
+
     if (make->testdll)
     {
         char *testmodule = replace_extension( make->testdll, ".dll", "_test.exe" );
@@ -3252,6 +3265,7 @@ int main( int argc, char *argv[] )
     convert      = get_expanded_make_variable( top_makefile, "CONVERT" );
     rsvg         = get_expanded_make_variable( top_makefile, "RSVG" );
     icotool      = get_expanded_make_variable( top_makefile, "ICOTOOL" );
+    dlltool      = get_expanded_make_variable( top_makefile, "DLLTOOL" );
 
     if (root_src_dir && !strcmp( root_src_dir, "." )) root_src_dir = NULL;
     if (tools_dir && !strcmp( tools_dir, "." )) tools_dir = NULL;




More information about the wine-cvs mailing list