From: John Cherry <cherry@osdl.org>

My compile regression scripts were getting random build failures for aic7xxx.
 The two makefiles could not handle parallel build.  Occasionally they would
succeed...timing dependent.



 25-akpm/drivers/scsi/aic7xxx/Makefile        |    8 ++++++--
 25-akpm/drivers/scsi/aic7xxx/aicasm/Makefile |   12 ++++++++----
 2 files changed, 14 insertions(+), 6 deletions(-)

diff -puN drivers/scsi/aic7xxx/aicasm/Makefile~aic7xxx-parallel-build-fix drivers/scsi/aic7xxx/aicasm/Makefile
--- 25/drivers/scsi/aic7xxx/aicasm/Makefile~aic7xxx-parallel-build-fix	Thu Aug 14 17:08:14 2003
+++ 25-akpm/drivers/scsi/aic7xxx/aicasm/Makefile	Thu Aug 14 17:08:14 2003
@@ -49,14 +49,18 @@ aicdb.h:
 clean:
 	rm -f $(clean-files)
 
-aicasm_gram.c aicasm_gram.h: aicasm_gram.y
+aicasm_gram.c: aicasm_gram.h
+	mv $(<:.h=).tab.c $(<:.h=.c)
+
+aicasm_gram.h: aicasm_gram.y
 	$(YACC) $(YFLAGS) -b $(<:.y=) $<
-	mv $(<:.y=).tab.c $(<:.y=.c)
 	mv $(<:.y=).tab.h $(<:.y=.h)
 
-aicasm_macro_gram.c aicasm_macro_gram.h: aicasm_macro_gram.y
+aicasm_macro_gram.c: aicasm_macro_gram.h
+	mv $(<:.h=).tab.c $(<:.h=.c)
+
+aicasm_macro_gram.h: aicasm_macro_gram.y
 	$(YACC) $(YFLAGS) -b $(<:.y=) -p mm $<
-	mv $(<:.y=).tab.c $(<:.y=.c)
 	mv $(<:.y=).tab.h $(<:.y=.h)
 
 aicasm_scan.c: aicasm_scan.l
diff -puN drivers/scsi/aic7xxx/Makefile~aic7xxx-parallel-build-fix drivers/scsi/aic7xxx/Makefile
--- 25/drivers/scsi/aic7xxx/Makefile~aic7xxx-parallel-build-fix	Thu Aug 14 17:08:14 2003
+++ 25-akpm/drivers/scsi/aic7xxx/Makefile	Thu Aug 14 17:08:14 2003
@@ -58,7 +58,9 @@ aicasm-7xxx-opts-$(CONFIG_AIC7XXX_REG_PR
 	-p $(obj)/aic7xxx_reg_print.c -i aic7xxx_osm.h
 
 ifeq ($(CONFIG_AIC7XXX_BUILD_FIRMWARE),y)
-$(aic7xxx-gen-y): $(src)/aic7xxx.seq $(src)/aic7xxx.reg $(obj)/aicasm/aicasm
+$(aic7xxx-gen-y): $(src)/aic7xxx.seq
+
+$(src)/aic7xxx.seq: $(obj)/aicasm/aicasm $(src)/aic7xxx.reg
 	$(obj)/aicasm/aicasm -I$(src) -r $(obj)/aic7xxx_reg.h \
 			      $(aicasm-7xxx-opts-y) -o $(obj)/aic7xxx_seq.h \
 			      $(src)/aic7xxx.seq
@@ -72,7 +74,9 @@ aicasm-79xx-opts-$(CONFIG_AIC79XX_REG_PR
 	-p $(obj)/aic79xx_reg_print.c -i aic79xx_osm.h
 
 ifeq ($(CONFIG_AIC79XX_BUILD_FIRMWARE),y)
-$(aic79xx-gen-y): $(src)/aic79xx.seq $(src)/aic79xx.reg $(obj)/aicasm/aicasm
+$(aic79xx-gen-y): $(src)/aic79xx.seq
+
+$(src)/aic79xx.seq: $(obj)/aicasm/aicasm $(src)/aic79xx.reg
 	$(obj)/aicasm/aicasm -I$(src) -r $(obj)/aic79xx_reg.h \
 			      $(aicasm-79xx-opts-y) -o $(obj)/aic79xx_seq.h \
 			      $(src)/aic79xx.seq

_