Use $(parsedir) when building c-parse.o

Loren James Rittle rittle@latour.rsch.comm.mot.com
Thu Jan 30 02:58:00 GMT 2003


In article <m3d6mgl5jc.fsf@north-pole.nickc.cambridge.redhat.com> you write:

>  I think that the recent change to Makefile.in to use $(parsedir)
>  missed a case.  The rule for c-parse.o depends upon
>  $(parsedir)/c-parse.c but it refers to $(srcdir)/c-parse.c in its
>  rule.  The patch below fixes this.  OK to apply ?

Here are additional quirks I caught and posted about last week (I have
updated my patch to remove the thunk that Nick just applied).  Tested
with full bootstrap on i386-unknown-freebsd4.7.  Without this patch,
any change to parsedir will cause a bootstrap which builds objc to
fail.  Without this patch, java parser generations are dumped into
srcdir instead of parsedir.  OK to install?

(in gcc:)
	* objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).

(in gcc/java:)
	* Make-lang.in (po-generated): Find the targets in $(parsedir).
	Propagate change to all other rules as required.
	(java/parse-scan.o): Add explicit dependency on
	$(parsedir)/java/parse-scan.c .

Index: gcc/objc/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/objc/Make-lang.in,v
retrieving revision 1.54
diff -c -r1.54 Make-lang.in
*** gcc/objc/Make-lang.in	21 Jan 2003 13:45:16 -0000	1.54
--- gcc/objc/Make-lang.in	30 Jan 2003 02:42:22 -0000
***************
*** 84,90 ****
  	  false ; \
  	fi
  
! $(parsedir)/objc/objc-parse.y: $(parsedir)/c-parse.in
  	echo '/*WARNING: This file is automatically generated!*/' >tmp-objc-prs.y
  	sed -e "/^ifc$$/,/^end ifc$$/d" \
  	  -e "/^ifobjc$$/d" -e "/^end ifobjc$$/d" \
--- 84,90 ----
  	  false ; \
  	fi
  
! $(parsedir)/objc/objc-parse.y: $(srcdir)/c-parse.in
  	echo '/*WARNING: This file is automatically generated!*/' >tmp-objc-prs.y
  	sed -e "/^ifc$$/,/^end ifc$$/d" \
  	  -e "/^ifobjc$$/d" -e "/^end ifobjc$$/d" \
Index: gcc/java/Make-lang.in
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/Make-lang.in,v
retrieving revision 1.102
diff -c -r1.102 Make-lang.in
*** gcc/java/Make-lang.in	22 Jan 2003 20:51:55 -0000	1.102
--- gcc/java/Make-lang.in	30 Jan 2003 02:42:22 -0000
***************
*** 79,94 ****
  	-rm -f $(GCJ)-cross$(exeext)
  	cp $(GCJ)$(exeext) $(GCJ)-cross$(exeext)
  
! po-generated: $(srcdir)/java/parse.c $(srcdir)/java/parse-scan.c
  
! $(srcdir)/java/parse.c: $(srcdir)/java/parse.y
  	$(BISON) -t --name-prefix=java_ $(BISONFLAGS) \
  	    -o p$$$$.c $(srcdir)/java/parse.y && \
! 	mv -f p$$$$.c $(srcdir)/java/parse.c
  
! $(srcdir)/java/parse-scan.c:  $(srcdir)/java/parse-scan.y
  	$(BISON) -t $(BISONFLAGS) -o ps$$$$.c $(srcdir)/java/parse-scan.y && \
! 	mv -f ps$$$$.c $(srcdir)/java/parse-scan.c
  
  $(srcdir)/java/keyword.h: $(srcdir)/java/keyword.gperf
  	(cd $(srcdir)/java || exit 1; \
--- 79,94 ----
  	-rm -f $(GCJ)-cross$(exeext)
  	cp $(GCJ)$(exeext) $(GCJ)-cross$(exeext)
  
! po-generated: $(parsedir)/java/parse.c $(parsedir)/java/parse-scan.c
  
! $(parsedir)/java/parse.c: $(srcdir)/java/parse.y
  	$(BISON) -t --name-prefix=java_ $(BISONFLAGS) \
  	    -o p$$$$.c $(srcdir)/java/parse.y && \
! 	mv -f p$$$$.c $(parsedir)/java/parse.c
  
! $(parsedir)/java/parse-scan.c:  $(srcdir)/java/parse-scan.y
  	$(BISON) -t $(BISONFLAGS) -o ps$$$$.c $(srcdir)/java/parse-scan.y && \
! 	mv -f ps$$$$.c $(parsedir)/java/parse-scan.c
  
  $(srcdir)/java/keyword.h: $(srcdir)/java/keyword.gperf
  	(cd $(srcdir)/java || exit 1; \
***************
*** 239,245 ****
  	-rm -f java/parse.output
  java.extraclean:
  java.maintainer-clean:
! 	-rm -f java/parse.c java/parse-scan.c java/parse.output java/y.tab.c
  	-rm -f $(srcdir)/java/gcj.1 $(srcdir)/java/gcjh.1
  	-rm -f $(srcdir)/java/jv-scan.1 $(srcdir)/java/jcf-dump.1
  	-rm -f $(srcdir)/java/gij.1
--- 239,245 ----
  	-rm -f java/parse.output
  java.extraclean:
  java.maintainer-clean:
! 	-rm -f $(parsedir)/java/parse.c $(parsedir)/java/parse-scan.c java/parse.output java/y.tab.c
  	-rm -f $(srcdir)/java/gcj.1 $(srcdir)/java/gcjh.1
  	-rm -f $(srcdir)/java/jv-scan.1 $(srcdir)/java/jcf-dump.1
  	-rm -f $(srcdir)/java/gij.1
***************
*** 264,270 ****
  JAVA_TREE_H = $(TREE_H) $(HASHTAB_H) java/java-tree.h java/java-tree.def
  JAVA_LEX_C = java/lex.c java/keyword.h java/chartables.h
  
! java/parse.o: java/parse.c java/jcf-reader.c $(CONFIG_H) $(SYSTEM_H) \
    coretypes.h $(TM_H) function.h $(JAVA_TREE_H) $(JAVA_LEX_C) java/parse.h \
    java/lex.h $(GGC_H) debug.h gt-java-parse.h gtype-java.h
  java/jcf-dump.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(JAVA_TREE_H) \
--- 264,270 ----
  JAVA_TREE_H = $(TREE_H) $(HASHTAB_H) java/java-tree.h java/java-tree.def
  JAVA_LEX_C = java/lex.c java/keyword.h java/chartables.h
  
! java/parse.o: $(parsedir)/java/parse.c java/jcf-reader.c $(CONFIG_H) $(SYSTEM_H) \
    coretypes.h $(TM_H) function.h $(JAVA_TREE_H) $(JAVA_LEX_C) java/parse.h \
    java/lex.h $(GGC_H) debug.h gt-java-parse.h gtype-java.h
  java/jcf-dump.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(JAVA_TREE_H) \
***************
*** 322,328 ****
    coretypes.h $(TM_H) toplev.h $(GGC_H) gt-java-mangle.h
  java/mangle_name.o: java/mangle_name.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) \
    $(SYSTEM_H) coretypes.h $(TM_H) toplev.h $(GGC_H)
! java/parse-scan.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \
    $(JAVA_LEX_C) java/parse.h java/lex.h
  java/resource.o: java/resource.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
    $(JAVA_TREE_H) $(RTL_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \
--- 322,328 ----
    coretypes.h $(TM_H) toplev.h $(GGC_H) gt-java-mangle.h
  java/mangle_name.o: java/mangle_name.c $(CONFIG_H) java/jcf.h $(JAVA_TREE_H) \
    $(SYSTEM_H) coretypes.h $(TM_H) toplev.h $(GGC_H)
! java/parse-scan.o: $(parsedir)/java/parse-scan.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) toplev.h \
    $(JAVA_LEX_C) java/parse.h java/lex.h
  java/resource.o: java/resource.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
    $(JAVA_TREE_H) $(RTL_H) java/jcf.h java/parse.h toplev.h output.h $(GGC_H) \



More information about the Gcc-patches mailing list