Alexandre Julliard : makefiles: Generate explicit build rules for bison files from makedep.

Alexandre Julliard julliard at winehq.org
Tue Oct 15 13:27:10 CDT 2013


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Oct 14 19:52:52 2013 +0200

makefiles: Generate explicit build rules for bison files from makedep.

---

 Make.rules.in   |    8 +-------
 tools/makedep.c |   13 +++++++++++--
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/Make.rules.in b/Make.rules.in
index 430e91b..a7da5ef 100644
--- a/Make.rules.in
+++ b/Make.rules.in
@@ -36,7 +36,7 @@ CROSSOBJS = $(OBJS:.o=.cross.o)
 
 # Implicit rules
 
-.SUFFIXES: .mc .rc .res .idl .tlb .h .y .tab.c .tab.h .ok .man.in .man _c.c _i.c _p.c _s.c _r.res _t.res .cross.o .po .mo @MAINTAINER_MODE@ .sfd .ttf .svg .ico .bmp
+.SUFFIXES: .mc .rc .res .idl .tlb .h .ok .man.in .man _c.c _i.c _p.c _s.c _r.res _t.res .cross.o .po .mo @MAINTAINER_MODE@ .sfd .ttf .svg .ico .bmp
 
 .c.o:
 	$(CC) -c $(ALLCFLAGS) -o $@ $<
@@ -47,12 +47,6 @@ CROSSOBJS = $(OBJS:.o=.cross.o)
 .c.cross.o:
 	$(CROSSCC) -c $(INCLUDES) $(DEFS) -DWINE_CROSSTEST $(CPPFLAGS) $(CFLAGS) -o $@ $<
 
-.y.tab.c:
-	$(BISON) $(BISONFLAGS) -p $*_ -o $@ $<
-
-.y.tab.h:
-	$(BISON) $(BISONFLAGS) -p $*_ -o $*.tab.c -d $<
-
 .mc.res:
 	$(WMC) -U -O res $(PORCFLAGS) -o $@ $<
 
diff --git a/tools/makedep.c b/tools/makedep.c
index d49c90a..b7c70d2 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -941,9 +941,18 @@ static void output_sources(void)
         {
             /* add source file dependency for parallel makes */
             char *header = strmake( "%s.tab.h", obj );
-            if (find_include_file( header )) output( "%s.tab.c: %s\n", obj, header );
-            free( header );
+            if (find_include_file( header ))
+            {
+                output( "%s.tab.h: %s\n", obj, source->filename );
+                output( "\t$(BISON) $(BISONFLAGS) -p %s_ -o %s.tab.c -d %s\n",
+                        obj, obj, source->filename );
+                output( "%s.tab.c: %s %s\n", obj, source->filename, header );
+            }
+            else output( "%s.tab.c: %s\n", obj, source->filename );
+
+            output( "\t$(BISON) $(BISONFLAGS) -p %s_ -o $@ %s\n", obj, source->filename );
             column += output( "%s.tab.o: %s.tab.c", obj, obj );
+            free( header );
         }
         else if (!strcmp( ext, "l" ))  /* lex file */
         {




More information about the wine-cvs mailing list