Alexandre Julliard : makedep: Generate rules for static libraries.

Alexandre Julliard julliard at winehq.org
Tue Dec 31 11:11:42 CST 2013


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Dec 30 20:17:36 2013 +0100

makedep: Generate rules for static libraries.

---

 Make.rules.in   |   14 --------------
 Make.vars.in    |    2 --
 configure       |    2 --
 configure.ac    |    2 --
 tools/makedep.c |   24 ++++++++++++++++++++++++
 5 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/Make.rules.in b/Make.rules.in
index c368f9a..0a40ff4 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -27,20 +27,6 @@ OBJS = $(C_SRCS:.c=.o) $(BISON_SRCS:.y=.tab.o) $(LEX_SRCS:.l=.yy.o) $(IDL_GEN_C_
 CROSSOBJS = $(OBJS:.o=.cross.o)
 ALLCROSSCFLAGS = $(DEFS) -DWINE_CROSSTEST $(CPPFLAGS) $(CFLAGS)
 
-# Rules for static libraries
-
-all: $(STATICLIB)
-
-$(STATICLIB): $(OBJS)
-	$(RM) $@
-	$(AR) $(ARFLAGS) $@ $(OBJS)
-	$(RANLIB) $@
-
-$(STATICLIB:.a=.cross.a): $(CROSSOBJS)
-	$(RM) $@
-	$(CROSSAR) $(ARFLAGS) $@ $(CROSSOBJS)
-	$(CROSSRANLIB) $@
-
 # Rules for dependencies
 
 depend: dummy
diff --git a/Make.vars.in b/Make.vars.in
index 5246f89..bc19456 100644
--- a/Make.vars.in
+++ b/Make.vars.in
@@ -49,8 +49,6 @@ CROSSTARGET     = @CROSSTARGET@
 LINGUAS         = @LINGUAS@
 ALL_MO_FILES    = $(LINGUAS:%=@top_builddir@/po/%.mo)
 PORCFLAGS       = @PORCFLAGS@
-CROSSAR         = $(CROSSTARGET)-ar
-CROSSRANLIB     = $(CROSSTARGET)-ranlib
 BUILDIMAGE      = $(top_srcdir)/tools/buildimage
 C2MAN           = $(top_srcdir)/tools/c2man.pl
 RUNTEST         = $(top_srcdir)/tools/runtest
diff --git a/configure b/configure
index 8a254ad..91bb070 100755
--- a/configure
+++ b/configure
@@ -16549,7 +16549,6 @@ MAKE_IMPLIB_RULES="DLLFLAGS = $DLLFLAGS
 if test -n "$CROSSTARGET"
 then
     as_fn_append MAKE_IMPLIB_RULES "MAKEDEPFLAGS = -xo -xcross.o
-all: \$(STATICLIB:.a=.cross.a)
 "
 fi
 
@@ -17410,7 +17409,6 @@ zh_TW"
 
 
 
-wine_fn_ignore_file "*.a"
 wine_fn_ignore_file "*.exe"
 test -n "$DLLEXT" && wine_fn_ignore_file "*$DLLEXT"
 wine_fn_ignore_file ".gitignore"
diff --git a/configure.ac b/configure.ac
index a8a7da4..9d1948c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2607,7 +2607,6 @@ AC_SUBST(MAKE_IMPLIB_RULES,"DLLFLAGS = $DLLFLAGS
 if test -n "$CROSSTARGET"
 then
     AS_VAR_APPEND([MAKE_IMPLIB_RULES],"MAKEDEPFLAGS = -xo -xcross.o
-all: \$(STATICLIB:.a=.cross.a)
 ")
 fi
 
@@ -3456,7 +3455,6 @@ dnl End of auto-generated output commands
 
 dnl Main ignore file
 
-WINE_IGNORE_FILE("*.a")
 WINE_IGNORE_FILE("*.exe")
 test -n "$DLLEXT" && WINE_IGNORE_FILE("*$DLLEXT")
 WINE_IGNORE_FILE(".gitignore")
diff --git a/tools/makedep.c b/tools/makedep.c
index f7bba41..ee24bba 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1386,6 +1386,7 @@ static struct strarray output_sources(void)
     char *module = get_expanded_make_variable( "MODULE" );
     char *exeext = get_expanded_make_variable( "EXEEXT" );
     char *appmode = get_expanded_make_variable( "APPMODE" );
+    char *staticlib = get_expanded_make_variable( "STATICLIB" );
     char *crosstarget = get_expanded_make_variable( "CROSSTARGET" );
 
     if (exeext && !strcmp( exeext, ".exe" )) dllext = "";
@@ -1749,6 +1750,29 @@ static struct strarray output_sources(void)
         }
     }
 
+    if (staticlib)
+    {
+        strarray_add( &all_targets, staticlib );
+        output( "%s:", staticlib );
+        output_filenames( object_files );
+        output( "\n\t$(RM) $@\n" );
+        output( "\t$(AR) $(ARFLAGS) $@" );
+        output_filenames( object_files );
+        output( "\n\t$(RANLIB) $@\n" );
+        if (crosstarget && object_extensions.count > 1)
+        {
+            char *name = replace_extension( staticlib, ".a", ".cross.a" );
+
+            strarray_add( &all_targets, name );
+            output( "%s:", name );
+            output_filenames( crossobj_files );
+            output( "\n\t$(RM) $@\n" );
+            output( "\t%s-ar $(ARFLAGS) $@", crosstarget );
+            output_filenames( crossobj_files );
+            output( "\n\t%s-ranlib $@\n", crosstarget );
+        }
+    }
+
     if (is_test)
     {
         struct strarray ok_files = strarray_replace_extension( &test_files, ".c", ".ok" );




More information about the wine-cvs mailing list