re PR bootstrap/12744 (A GCC release tarball can no longer be built without bison...
authorKelley Cook <kcook@gcc.gnu.org>
Thu, 15 Jan 2004 04:02:24 +0000 (04:02 +0000)
committerR. Kelley Cook <kcook@gcc.gnu.org>
Thu, 15 Jan 2004 04:02:24 +0000 (04:02 +0000)
gcc/
2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

PR bootstrap/12744
* configure.in: Revamp enable-generated-files-in-srcdir rule to define
GENINSRC and not parsedir.  Define srcextra as a langhook.
* configure: Regenerate.
* Makefile.in: Suppress default .l.c rule.  Don't substitute
parsedir and delete all references throughout.  Conditionally define
rule for srcextra dependent on GENINSRC.
(stmp-docobjdir): Delete.
(c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
(srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
and gengtype-yacc.h back to source directory.
(maintainer-clean): Delete all parse files in source directory.
(distclean): Delete generated files.

* objc/Make-lang.in (objc-parse.o): Use implicit build rule.
(objc-parse.c, objc-parse.y): Don't use parsedir.
(objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
directory if requested.
(po-generated): Don't use parsedir.
(objc.maintainer-clean): Delete above files from source directory.

gcc/ada/
2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

* Make-lang.in (ada.srcextra): Dummy entry.

gcc/cp/
2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

* Make-lang.in (c++.srcextra): Dummy entry.

gcc/f/
2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

* Make-lang.in (f77.srcextra): Dummy entry.

gcc/java/
2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

* Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
(java.srcextra): Copy above back to source directory if requested.
(po-generated): Delete reference to $(parsedir).
(java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
Use implicit rule.

gcc/treelang/
2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>

* Make-lang.in (TREE_GENERATED): Delete reference to $(parsedir).
(treelang/parse.o, treelang/lex.o): Look for sources in build
directory.  Use implicit rule.
(treelang/parse.c, treelang/parse.h treelang/lex.c): Always build in
doc directory.
(treelang.srcextra): Copy above back to source directory if requested.

From-SVN: r75903

15 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/ada/ChangeLog
gcc/ada/Make-lang.in
gcc/configure
gcc/configure.ac
gcc/cp/ChangeLog
gcc/cp/Make-lang.in
gcc/f/ChangeLog
gcc/f/Make-lang.in
gcc/java/ChangeLog
gcc/java/Make-lang.in
gcc/objc/Make-lang.in
gcc/treelang/ChangeLog
gcc/treelang/Make-lang.in

index be22f62..dc04759 100644 (file)
@@ -1,3 +1,26 @@
+2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
+
+       PR bootstrap/12744
+       * configure.in: Revamp enable-generated-files-in-srcdir rule to define
+       GENINSRC and not parsedir.  Define srcextra as a langhook.
+       * configure: Regenerate.
+       * Makefile.in: Suppress default .l.c rule.  Don't substitute
+       parsedir and delete all references throughout.  Conditionally define
+       rule for srcextra dependent on GENINSRC.
+       (stmp-docobjdir): Delete.
+       (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
+       (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
+       and gengtype-yacc.h back to source directory.
+       (maintainer-clean): Delete all parse files in source directory.
+       (distclean): Delete generated files.
+
+       * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
+       (objc-parse.c, objc-parse.y): Don't use parsedir.
+       (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
+       directory if requested.
+       (po-generated): Don't use parsedir.
+       (objc.maintainer-clean): Delete above files from source directory.
+
 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
 
        * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
index 4d81b6d..d90e441 100644 (file)
@@ -41,8 +41,9 @@ force:
 # to recursive makes.
 MAKEOVERRIDES =
 
-# Suppress smart makes who think they know how to automake Yacc files
+# Suppress smart makes who think they know how to automake yacc and flex file
 .y.c:
+.l.c:
 
 # The only suffixes we want for implicit rules are .c and .o, so clear
 # the list and add them.  This speeds up GNU Make, and allows -r to work.
@@ -70,11 +71,6 @@ program_transform_name = @program_transform_name@
 
 # Directory where sources are, from where we are.
 srcdir = @srcdir@
-
-# These directories contain files that are provided as part of a FSF tarball,
-# but not provided in CVS.  Unless --enable-generated-files-in-srcdir is
-# specified these files will be put in the object directory.
-parsedir = @parsedir@
 docobjdir = @docobjdir@
 docdir = $(srcdir)/doc
 
@@ -1058,7 +1054,7 @@ all.cross: native gcc-cross cpp$(exeext) specs \
        $(LIBGCC) $(EXTRA_PARTS) lang.all.cross doc
 # This is what must be made before installing GCC and converting libraries.
 start.encap: native xgcc$(exeext) cpp$(exeext) specs \
-       xlimits.h lang.start.encap
+       xlimits.h lang.start.encap @GENINSRC@ srcextra lang.srcextra
 # These can't be made until after GCC can run.
 rest.encap: $(STMP_FIXPROTO) $(LIBGCC) $(EXTRA_PARTS) lang.rest.encap
 # This is what is made with the host's compiler
@@ -1270,28 +1266,21 @@ s-crt0: $(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H)
 
 c-errors.o: c-errors.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
     $(C_TREE_H) flags.h $(DIAGNOSTIC_H) $(TM_P_H)
-c-parse.o : $(parsedir)/c-parse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
+c-parse.o : c-parse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
     $(GGC_H) intl.h $(C_TREE_H) input.h flags.h toplev.h output.h $(CPPLIB_H) \
     varray.h gt-c-parse.h
-       $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-              -c $(parsedir)/c-parse.c $(OUTPUT_OPTION)
 
-$(parsedir)/c-parse.c: $(parsedir)/c-parse.y
-       cd $(parsedir) && \
-       if $(BISON) $(BISONFLAGS) -o c-p$$$$.c c-parse.y; then \
-         test -f c-p$$$$.output && mv -f c-p$$$$.output c-parse.output ; \
-         mv -f c-p$$$$.c c-parse.c ; \
-       else \
-         rm -f c-p$$$$.* ; \
-         false ; \
-       fi
+srcextra: c-parse.y c-parse.c gengtype-lex.c gengtype-yacc.c gengtype-yacc.h
+       -cp -p $^ $(srcdir)
+
+c-parse.c: c-parse.y
+       -$(BISON) $(BISONFLAGS) -o $@ $< 
 
-$(parsedir)/c-parse.y: c-parse.in
+c-parse.y: c-parse.in
        echo '/*WARNING: This file is automatically generated!*/' >tmp-c-parse.y
        sed -e "/^@@ifobjc.*/,/^@@end_ifobjc.*/d" \
-         -e "/^@@ifc.*/d" -e "/^@@end_ifc.*/d" \
-         $(srcdir)/c-parse.in >>tmp-c-parse.y
-       $(SHELL) $(srcdir)/move-if-change tmp-c-parse.y $(parsedir)/c-parse.y
+           -e "/^@@ifc.*/d" -e "/^@@end_ifc.*/d" $< >>tmp-c-parse.y
+       $(SHELL) $(srcdir)/move-if-change tmp-c-parse.y $@
 
 c-incpath.o: c-incpath.c c-incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
                intl.h prefix.h coretypes.h $(TM_H) cppdefault.h
@@ -2237,32 +2226,21 @@ gengtype$(build_exeext) : gengtype.o gengtype-lex.o gengtype-yacc.o \
 gengtype.o : gengtype.c gengtype.h $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H) \
   real.h $(RTL_BASE_H) gtyp-gen.h
 
-gengtype-lex.o : $(parsedir)/gengtype-lex.c gengtype.h $(parsedir)/gengtype-yacc.c \
+gengtype-lex.o : gengtype-lex.c gengtype.h gengtype-yacc.h \
   $(BCONFIG_H) coretypes.h $(GTM_H) $(SYSTEM_H)
        $(CC_FOR_BUILD) -c $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(INCLUDES) \
-         $(parsedir)/gengtype-lex.c $(OUTPUT_OPTION)
+        $< $(OUTPUT_OPTION)
 
-gengtype-yacc.o : $(parsedir)/gengtype-yacc.c gengtype.h $(BCONFIG_H) $(SYSTEM_H) \
+gengtype-yacc.o : gengtype-yacc.c gengtype.h $(BCONFIG_H) $(SYSTEM_H) \
   coretypes.h $(GTM_H)
        $(CC_FOR_BUILD) -c $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(INCLUDES) \
-         $(parsedir)/gengtype-yacc.c $(OUTPUT_OPTION)
+        $< $(OUTPUT_OPTION)
 
-$(parsedir)/gengtype-lex.c : $(srcdir)/gengtype-lex.l
-       if $(FLEX) $(FLEXFLAGS) -og-$$$$ $(srcdir)/gengtype-lex.l; then \
-         mv -f g-$$$$ $(parsedir)/gengtype-lex.c ; \
-       else \
-         rm -f g-$$$$ ; \
-         false ; \
-       fi
+gengtype-lex.c : gengtype-lex.l
+       -$(FLEX) $(FLEXFLAGS) -o$@ $<
 
-$(parsedir)/gengtype-yacc.c: $(srcdir)/gengtype-yacc.y
-       if $(BISON) $(BISONFLAGS) -d -o g-yacc.$$$$.c $(srcdir)/gengtype-yacc.y; then \
-         mv -f g-yacc.$$$$.h $(parsedir)/gengtype-yacc.h; \
-         mv -f g-yacc.$$$$.c $(parsedir)/gengtype-yacc.c; \
-       else \
-         rm -f g-yacc.$$$$.*; \
-         false; \
-       fi
+gengtype-yacc.c gengtype-yacc.h: gengtype-yacc.y
+       -$(BISON) $(BISONFLAGS) -d -o gengtype-yacc.c $<
 
 genconditions$(build_exeext) : genconditions.o $(BUILD_EARLY_SUPPORT) \
   $(BUILD_RTL) $(BUILD_ERRORS) $(BUILD_LIBDEPS)
@@ -2327,7 +2305,7 @@ intl.o: intl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h Makefile
 
 # Make-lang.in should add dependencies of po-generated on any generated
 # files which need to be scanned by gettext (usually Yacc-generated parsers).
-po-generated: $(parsedir)/c-parse.c options.c
+po-generated: c-parse.c options.c
 
 #\f
 # Remake cpp and protoize.
@@ -2820,7 +2798,7 @@ distclean: clean lang.distclean
        -rm -f Makefile *.oaux
        -rm -f gthr-default.h
        -rm -f */stage1 */stage2 */stage3 */stage4 */include */stageprofile */stagefeedback
-       -rm -f c-parse.output
+       -rm -f c-parse.y c-parse.c c-parse.output TAGS */TAGS
        -rm -f *.asm
        -rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak
        -rm -f testsuite/*.log testsuite/*.sum
@@ -2841,7 +2819,7 @@ maintainer-clean:
        @echo 'This command is intended for maintainers to use; it'
        @echo 'deletes files that may need special tools to rebuild.'
        $(MAKE) lang.maintainer-clean distclean
-       -rm -f c-parse.y c-parse.c c-parse.output TAGS
+       -rm -f $(srcdir)/c-parse.y $(srcdir)/c-parse.c
        -rm -f cpp.??s cpp.*aux
        -rm -f gcc.??s gcc.*aux
        -rm -f $(docobjdir)/cpp.info* $(docobjdir)/gcc.info* $(docobjdir)/gccint.info*
index 2156266..7e7a16a 100644 (file)
@@ -1,3 +1,7 @@
+2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * Make-lang.in (ada.srcextra): Dummy entry.
+
 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
 
        * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
index 4d9cf7a..626085f 100644 (file)
@@ -432,6 +432,7 @@ ada.all.cross:
 
 ada.start.encap: 
 ada.rest.encap: 
+ada.srcextra:
 
 ada.tags: force
        cd $(srcdir)/ada; etags -o TAGS.sub *.c *.h *.ads *.adb; \
index 543c7c3..34bf28a 100755 (executable)
@@ -308,7 +308,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP GNATBIND ac_ct_GNATBIND strict1_warn warn_cflags WERROR nocommon_flag EGREP valgrind_path valgrind_path_defines valgrind_command coverage_flags enable_multilib enable_shared TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR onestep SET_MAKE AWK LN LN_S RANLIB ac_ct_RANLIB INSTALL INSTALL_PROGRAM INSTALL_DATA make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES FLEX BISON stage1_cflags COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T LIBICONV LIBICONV_DEP manext objext extra_modes_file FORBUILD PACKAGE VERSION USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS CROSS ALL SYSTEM_HEADER_DIR inhibit_libc BUILD_PREFIX BUILD_PREFIX_1 CC_FOR_BUILD BUILD_CFLAGS STMP_FIXINC STMP_FIXPROTO libgcc_visibility gthread_flags GGC zlibdir zlibinc MAINT gcc_tooldir dollar slibdir objdir subdirs srcdir docobjdir parsedir all_boot_languages all_compilers all_gtfiles all_gtfiles_files_langs all_gtfiles_files_files all_lang_makefrags all_lang_makefiles all_languages all_stagestuff build_exeext build_install_headers_dir build_xm_file_list build_xm_include_list build_xm_defines check_languages cc_set_by_configure quoted_cc_set_by_configure cpp_install_dir xmake_file tmake_file extra_headers_list extra_objs extra_parts extra_passes extra_programs float_h_file gcc_config_arguments gcc_gxx_include_dir libstdcxx_incdir gcc_version gcc_version_full gcc_version_trigger host_exeext host_extra_gcc_objs host_xm_file_list host_xm_include_list host_xm_defines out_host_hook_obj install lang_opt_files lang_specs_files lang_tree_files local_prefix md_file objc_boehm_gc out_file out_object_file stage_prefix_set_by_configure quoted_stage_prefix_set_by_configure symbolic_link thread_file tm_file_list tm_include_list tm_defines tm_p_file_list tm_p_include_list xm_file_list xm_include_list xm_defines target_noncanonical c_target_objs cxx_target_objs target_cpu_default LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os build_subdir host_subdir target_subdir GENINSRC CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT NO_MINUS_C_MINUS_O OUTPUT_OPTION CPP GNATBIND ac_ct_GNATBIND strict1_warn warn_cflags WERROR nocommon_flag EGREP valgrind_path valgrind_path_defines valgrind_command coverage_flags enable_multilib enable_shared TARGET_SYSTEM_ROOT TARGET_SYSTEM_ROOT_DEFINE CROSS_SYSTEM_HEADER_DIR onestep SET_MAKE AWK LN LN_S RANLIB ac_ct_RANLIB INSTALL INSTALL_PROGRAM INSTALL_DATA make_compare_target have_mktemp_command MAKEINFO BUILD_INFO GENERATED_MANPAGES FLEX BISON stage1_cflags COLLECT2_LIBS GNAT_LIBEXC LDEXP_LIB TARGET_GETGROUPS_T LIBICONV LIBICONV_DEP manext objext extra_modes_file FORBUILD PACKAGE VERSION USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS CROSS ALL SYSTEM_HEADER_DIR inhibit_libc BUILD_PREFIX BUILD_PREFIX_1 CC_FOR_BUILD BUILD_CFLAGS STMP_FIXINC STMP_FIXPROTO libgcc_visibility gthread_flags GGC zlibdir zlibinc MAINT gcc_tooldir dollar slibdir objdir subdirs srcdir docobjdir all_boot_languages all_compilers all_gtfiles all_gtfiles_files_langs all_gtfiles_files_files all_lang_makefrags all_lang_makefiles all_languages all_stagestuff build_exeext build_install_headers_dir build_xm_file_list build_xm_include_list build_xm_defines check_languages cc_set_by_configure quoted_cc_set_by_configure cpp_install_dir xmake_file tmake_file extra_headers_list extra_objs extra_parts extra_passes extra_programs float_h_file gcc_config_arguments gcc_gxx_include_dir libstdcxx_incdir gcc_version gcc_version_full gcc_version_trigger host_exeext host_extra_gcc_objs host_xm_file_list host_xm_include_list host_xm_defines out_host_hook_obj install lang_opt_files lang_specs_files lang_tree_files local_prefix md_file objc_boehm_gc out_file out_object_file stage_prefix_set_by_configure quoted_stage_prefix_set_by_configure symbolic_link thread_file tm_file_list tm_include_list tm_defines tm_p_file_list tm_p_include_list xm_file_list xm_include_list xm_defines target_noncanonical c_target_objs cxx_target_objs target_cpu_default LIBOBJS LTLIBOBJS'
 ac_subst_files='language_hooks'
 
 # Initialize some variables set by options.
@@ -849,7 +849,10 @@ if test -n "$ac_init_help"; then
 Optional Features:
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-generated-files-in-srcdir  Put generated files in source dir
+  --enable-generated-files-in-srcdir
+                          put copies of generated files in source dir
+                          intended for creating source tarballs for users
+                          without texinfo bison or flex.
   --enable-werror         enable -Werror in bootstrap stage2 and later
   --enable-checking=LIST
                          enable expensive run-time checks.  With LIST,
@@ -1613,17 +1616,28 @@ fi;
 # sources.  Therefore we have --enable-generated-files-in-srcdir to do
 # just that.
 
-# Check whether --enable-generated-files-in-srcdir or --disable-generated-files-in-srcdir was given.
+echo "$as_me:$LINENO: checking whether to place generated files in the source directory" >&5
+echo $ECHO_N "checking whether to place generated files in the source directory... $ECHO_C" >&6
+    # Check whether --enable-generated-files-in-srcdir or --disable-generated-files-in-srcdir was given.
 if test "${enable_generated_files_in_srcdir+set}" = set; then
   enableval="$enable_generated_files_in_srcdir"
-  case ${enableval} in
-  no)    parsedir='$(objdir)'; docobjdir='$(objdir)/doc';;
-  *)     parsedir='$(srcdir)'; docobjdir='$(srcdir)/doc';;
-esac
+  generated_files_in_srcdir=$enableval
 else
-  parsedir='$(objdir)'; docobjdir='$(objdir)/doc';
+  generated_files_in_srcdir=no
 fi;
 
+echo "$as_me:$LINENO: result: $generated_files_in_srcdir" >&5
+echo "${ECHO_T}$generated_files_in_srcdir" >&6
+
+if test "$generated_files_in_srcdir" = "yes"; then
+  GENINSRC=''
+  docobjdir='$(srcdir)/doc'
+else
+  GENINSRC='#'
+  docobjdir='$(objdir)/doc'
+fi
+
+
 # -------------------
 # Find default linker
 # -------------------
@@ -4985,7 +4999,7 @@ if test "${gcc_cv_prog_makeinfo_modern+set}" = set; then
 else
     ac_prog_version=`$MAKEINFO --version 2>&1 |
                    sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
-  echo "configure:4988: version of makeinfo is $ac_prog_version" >&5
+  echo "configure:5002: version of makeinfo is $ac_prog_version" >&5
   case $ac_prog_version in
     '')     gcc_cv_prog_makeinfo_modern=no;;
     4.[2-9]*)
@@ -11435,7 +11449,7 @@ rm -f Make-hooks
 touch Make-hooks
 target_list="all.build all.cross start.encap rest.encap tags \
        install-normal install-common install-man \
-       uninstall \
+       uninstall srcextra \
        mostlyclean clean distclean maintainer-clean \
        stage1 stage2 stage3 stage4 stageprofile stagefeedback"
 for t in $target_list
@@ -11598,7 +11612,6 @@ objdir=`${PWDCMD-pwd}`
 
 
 
-
 # Echo link setup.
 if test x${build} = x${host} ; then
   if test x${host} = x${target} ; then
@@ -12265,6 +12278,7 @@ s,@target_os@,$target_os,;t t
 s,@build_subdir@,$build_subdir,;t t
 s,@host_subdir@,$host_subdir,;t t
 s,@target_subdir@,$target_subdir,;t t
+s,@GENINSRC@,$GENINSRC,;t t
 s,@CC@,$CC,;t t
 s,@CFLAGS@,$CFLAGS,;t t
 s,@LDFLAGS@,$LDFLAGS,;t t
@@ -12352,7 +12366,6 @@ s,@objdir@,$objdir,;t t
 s,@subdirs@,$subdirs,;t t
 s,@srcdir@,$srcdir,;t t
 s,@docobjdir@,$docobjdir,;t t
-s,@parsedir@,$parsedir,;t t
 s,@all_boot_languages@,$all_boot_languages,;t t
 s,@all_compilers@,$all_compilers,;t t
 s,@all_gtfiles@,$all_gtfiles,;t t
index 64980f3..cf26ee2 100644 (file)
@@ -157,13 +157,26 @@ fi])
 # sources.  Therefore we have --enable-generated-files-in-srcdir to do 
 # just that.
 
-AC_ARG_ENABLE(generated-files-in-srcdir, 
-[  --enable-generated-files-in-srcdir  Put generated files in source dir],
-[case ${enableval} in
-  no)    parsedir='$(objdir)'; docobjdir='$(objdir)/doc';;
-  *)     parsedir='$(srcdir)'; docobjdir='$(srcdir)/doc';;
-esac],
-[parsedir='$(objdir)'; docobjdir='$(objdir)/doc';])
+AC_MSG_CHECKING([whether to place generated files in the source directory])
+  dnl generated-files-in-srcdir is disabled by default
+  AC_ARG_ENABLE(generated-files-in-srcdir, 
+[  --enable-generated-files-in-srcdir
+                          put copies of generated files in source dir
+                          intended for creating source tarballs for users
+                          without texinfo bison or flex.],
+      generated_files_in_srcdir=$enableval,
+      generated_files_in_srcdir=no)
+
+AC_MSG_RESULT($generated_files_in_srcdir)
+
+if test "$generated_files_in_srcdir" = "yes"; then
+  GENINSRC=''
+  docobjdir='$(srcdir)/doc'
+else
+  GENINSRC='#'
+  docobjdir='$(objdir)/doc'
+fi
+AC_SUBST(GENINSRC)
 
 # -------------------
 # Find default linker
@@ -2845,7 +2858,7 @@ rm -f Make-hooks
 touch Make-hooks
 target_list="all.build all.cross start.encap rest.encap tags \
        install-normal install-common install-man \
-       uninstall \
+       uninstall srcextra \
        mostlyclean clean distclean maintainer-clean \
        stage1 stage2 stage3 stage4 stageprofile stagefeedback"
 for t in $target_list
@@ -2939,7 +2952,6 @@ AC_SUBST(objdir)
 AC_SUBST(subdirs)
 AC_SUBST(srcdir)
 AC_SUBST(docobjdir)
-AC_SUBST(parsedir)
 AC_SUBST(all_boot_languages)
 AC_SUBST(all_compilers)
 AC_SUBST(all_gtfiles)
index 97f60f2..1a5792e 100644 (file)
@@ -1,3 +1,7 @@
+2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * Make-lang.in (c++.srcextra): Dummy entry.
+
 2004-01-15  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
 
        PR c++/8856
index 5c8bffc..771496b 100644 (file)
@@ -108,6 +108,7 @@ c++.all.build: g++$(exeext)
 c++.all.cross: g++-cross$(exeext)
 c++.start.encap: g++$(exeext)
 c++.rest.encap:
+c++.srcextra:
 
 c++.tags: force
        cd $(srcdir)/cp; etags -o TAGS.sub *.c *.h --language=none \
index a741313..f36ad62 100644 (file)
@@ -1,3 +1,7 @@
+2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * Make-lang.in (f77.srcextra): Dummy entry.
+
 2004-01-13  Ian Lance Taylor  <ian@wasabisystems.com>
 
        PR fortran/6491
index b54b83c..8b8de1b 100644 (file)
@@ -141,6 +141,7 @@ f77.all.build: g77$(exeext)
 f77.all.cross: g77-cross$(exeext)
 f77.start.encap: g77$(exeext)
 f77.rest.encap:
+f77.srcextra: 
 
 f77.tags: force
        cd $(srcdir)/f; etags -o TAGS.sub *.c *.h; \
index fd6e321..213f50e 100644 (file)
@@ -1,3 +1,11 @@
+2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
+       (java.srcextra): Copy above back to source directory if requested.
+       (po-generated): Delete reference to $(parsedir).
+       (java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
+       Use implicit rule.
+
 2004-01-14  Jan Hubicka  <jh@suse.cz>
 
        * lang.c (java_estimate_num_insns_1): Fix bug in MODIFY_EXPR cost
index fc6adf9..23912e8 100644 (file)
@@ -76,16 +76,16 @@ $(GCJ)-cross$(exeext): $(GCJ)$(exeext)
        -rm -f $(GCJ)-cross$(exeext)
        cp $(GCJ)$(exeext) $(GCJ)-cross$(exeext)
 
-po-generated: $(parsedir)/java/parse.c $(parsedir)/java/parse-scan.c
+po-generated: java/parse.c 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
+java.srcextra: java/parse.c java/parse-scan.c
+       -cp -p $^ $(srcdir)/java
 
-$(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
+java/parse.c: java/parse.y
+       -$(BISON) -t --name-prefix=java_ $(BISONFLAGS) -o $@ $<
+
+java/parse-scan.c: java/parse-scan.y
+       -$(BISON) -t $(BISONFLAGS) -o $@ $< 
 
 $(srcdir)/java/keyword.h: $(srcdir)/java/keyword.gperf
        (cd $(srcdir)/java || exit 1; \
@@ -228,15 +228,15 @@ install-info:: $(DESTDIR)$(infodir)/gcj.info
 # We just have to delete files specific to us.
 
 java.mostlyclean:
+       -rm -f java/parse.c java/parse-scan.c
        -rm -f java/*$(objext) $(DEMANGLER_PROG)
        -rm -f java/*$(coverageexts)
        -rm -f jc1$(exeext) $(GCJ)$(exeext) jvgenmain$(exeext) gcjh$(exeext) jv-scan$(exeext) jcf-dump$(exeext) s-java
 java.clean:
 java.distclean:
        -rm -f java/config.status java/Makefile
-       -rm -f java/parse.output
+       -rm -f java/parse.output java/y.tab.c
 java.maintainer-clean:
-       -rm -f $(parsedir)/java/parse.c $(parsedir)/java/parse-scan.c java/parse.output java/y.tab.c
        -rm -f $(docobjdir)/gcj.1 $(docobjdir)/gcjh.1
        -rm -f $(docobjdir)/jv-scan.1 $(docobjdir)/jcf-dump.1
        -rm -f $(docobjdir)/gij.1
@@ -325,18 +325,11 @@ java/xref.o: java/xref.c java/xref.h $(CONFIG_H) $(JAVA_TREE_H) toplev.h \
   $(SYSTEM_H) coretypes.h $(TM_H)
 java/zextract.o: java/zextract.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
   java/zipfile.h
-
-# parse-scan.o and parse.o compiled from $(parsedir)/java
-java/parse-scan.o: $(parsedir)/java/parse-scan.c $(CONFIG_H) $(SYSTEM_H) \
+java/parse-scan.o: java/parse-scan.c $(CONFIG_H) $(SYSTEM_H) \
   coretypes.h $(TM_H) toplev.h $(JAVA_LEX_C) java/parse.h java/lex.h input.h
-       $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-               $(parsedir)/java/parse-scan.c $(OUTPUT_OPTION)
-
-java/parse.o: $(parsedir)/java/parse.c java/jcf-reader.c $(CONFIG_H) $(SYSTEM_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 input.h $(GGC_H) debug.h gt-java-parse.h gtype-java.h
-       $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-               $(parsedir)/java/parse.c $(OUTPUT_OPTION)
 
 # jcf-io.o needs $(ZLIBINC) added to cflags.
 java/jcf-io.o: java/jcf-io.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
index fe92a50..70b9e4d 100644 (file)
@@ -62,11 +62,9 @@ objc/objc-lang.o : objc/objc-lang.c \
    $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) c-tree.h \
    c-common.h toplev.h objc/objc-act.h langhooks.h $(LANGHOOKS_DEF_H)
 
-objc/objc-parse.o : $(parsedir)/objc/objc-parse.c \
+objc/objc-parse.o : objc/objc-parse.c \
    $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \
    toplev.h $(GGC_H) c-pragma.h input.h flags.h output.h objc/objc-act.h
-       $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-       $(parsedir)/objc/objc-parse.c $(OUTPUT_OPTION)
 
 objc/objc-act.o : objc/objc-act.c \
    $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(TM_P_H) \
@@ -74,23 +72,19 @@ objc/objc-act.o : objc/objc-act.c \
    objc/objc-act.h input.h function.h output.h debug.h langhooks.h \
    $(LANGHOOKS_DEF_H) gt-objc-objc-act.h gtype-objc.h
 
-po-generated: $(parsedir)/objc/objc-parse.c
-$(parsedir)/objc/objc-parse.c : $(parsedir)/objc/objc-parse.y
-       cd $(parsedir)/objc; \
-       if $(BISON) $(BISONFLAGS) -o op$$$$.c objc-parse.y ; then \
-         test -f op$$$$.output && mv -f op$$$$.output objc-parse.output ; \
-         mv -f op$$$$.c objc-parse.c ; \
-       else \
-         rm -f op$$$$.* ; \
-         false ; \
-       fi
-
-$(parsedir)/objc/objc-parse.y: $(srcdir)/c-parse.in
+po-generated: objc/objc-parse.c
+
+objc.srcextra: objc/objc-parse.c objc/objc-parse.y
+       -cp -p $^ $(srcdir)/objc
+objc/objc-parse.c : objc/objc-parse.y
+       -$(BISON) $(BISONFLAGS) -o $@ $<
+
+objc/objc-parse.y: 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" \
-         $(srcdir)/c-parse.in >>tmp-objc-prs.y
-       $(SHELL) $(srcdir)/move-if-change tmp-objc-prs.y $(parsedir)/objc/objc-parse.y
+           -e "/^@@ifobjc.*/d" -e "/^@@end_ifobjc.*/d" < $< >>tmp-objc-prs.y
+       $(SHELL) $(srcdir)/move-if-change tmp-objc-prs.y $@
 
 gtype-objc.h : s-gtype ; @true
 gt-objc-objc-act.h : s-gtype ; @true
@@ -127,6 +121,7 @@ objc.uninstall:
 objc.mostlyclean:
        -rm -f tmp-objc-prs.y
        -rm -f objc/*$(objext) objc/xforward objc/fflags
+       -rm -f objc/objc-parse.y objc/objc-parse.c objc/objc-parse.output
        -rm -f objc/*$(coverageexts)
 objc.clean: objc.mostlyclean
        -rm -rf objc-headers
@@ -135,8 +130,7 @@ objc.distclean:
        -rm -f objc/config.status objc/config.cache
        -rm -f objc-parse.output
 objc.maintainer-clean:
-       -rm -f $(parsedir)/objc/objc-parse.y
-       -rm -f $(parsedir)/objc/objc-parse.c $(parsedir)/objc/objc-parse.output
+       -rm -f $(srcdir)/objc/objc-parse.y $(srcdir)/objc/objc-parse.c 
 
 #\f
 # Stage hooks:
index fa087fa..e4281b0 100644 (file)
@@ -1,3 +1,12 @@
+2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * Make-lang.in (TREE_GENERATED): Delete reference to $(parsedir).
+       (treelang/parse.o, treelang/lex.o): Look for sources in build 
+       directory.  Use implicit rule.
+       (treelang/parse.c, treelang/parse.h treelang/lex.c): Always build in
+       doc directory.
+       (treelang.srcextra): Copy above back to source directory if requested.
+
 2004-01-07  Zack Weinberg  <zack@codesourcery.com>
 
        * parse.y (yyerror): Mark the definition static.
index 00816d0..1cb438a 100644 (file)
@@ -57,10 +57,7 @@ GCC_EXTRAS = -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include
 
 # GCC_FOR_TREELANG = ./xgcc $(GCC_EXTRAS)
 
-TREE_GENERATED = $(parsedir)/treelang/lex.c $(parsedir)/treelang/parse.c \
-  $(parsedir)/treelang/parse.h $(parsedir)/treelang/parse.output \
-  $(parsedir)/treelang/TAGS $(parsedir)/treelang/TAGS.sub
-
+TREE_GENERATED = lex.c parse.c parse.h parse.output
 TREE_EXES = tree1
 
 #no -Wtraditional warnings, allow long long
@@ -104,33 +101,30 @@ treelang/tree1.o: treelang/tree1.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
 treelang/treetree.o: treelang/treetree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
   $(TM_H) $(TREE_H) flags.h output.h $(RTL_H) $(GGC_H) toplev.h \
   varray.h $(LANGHOOKS_DEF_H) langhooks.h treelang/treelang.h input.h \
-  treelang/treetree.h $(parsedir)/treelang/parse.h
+  treelang/treetree.h treelang/parse.h
 
 treelang/tree-convert.o: treelang/tree-convert.c $(CONFIG_H) $(SYSTEM_H) \
   coretypes.h diagnostic.h $(TREE_H) flags.h toplev.h langhooks.h $(TM_H)
 
-treelang/parse.o: $(parsedir)/treelang/parse.c $(CONFIG_H) $(SYSTEM_H) \
-   coretypes.h $(TM_H) diagnostic.h treelang/treelang.h input.h \
-   treelang/treetree.h
-       $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-       $(parsedir)/treelang/parse.c $(OUTPUT_OPTION)
+treelang/parse.o: treelang/parse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+  $(TM_H) diagnostic.h treelang/treelang.h input.h treelang/treetree.h
 
-treelang/lex.o: $(parsedir)/treelang/lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
+treelang/lex.o: treelang/lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
   $(TM_H) diagnostic.h $(TREE_H) treelang/treelang.h input.h \
-  $(parsedir)/treelang/parse.h
-       $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-       $(parsedir)/treelang/lex.c $(OUTPUT_OPTION)
+  treelang/parse.h
 
 # generated files the files from lex and yacc are put into the source
 # directory in case someone wants to build but does not have
 # lex/yacc
 
-$(parsedir)/treelang/lex.c: $(srcdir)/treelang/lex.l
-       $(LEX) $(LEXFLAGS) -o$(parsedir)/treelang/lex.c $(srcdir)/treelang/lex.l
+treelang.srcextra: treelang/parse.c treelang/parse.h treelang/lex.c
+       -cp -p $^ $(srcdir)/treelang
+
+treelang/lex.c: treelang/lex.l
+       -$(FLEX) $(FLEXFLAGS) -o$@ $<
 
-$(parsedir)/treelang/parse.c $(parsedir)/treelang/parse.h: $(srcdir)/treelang/parse.y
-       $(BISON) $(BISONFLAGS) -v --defines \
-       --output=$(parsedir)/treelang/parse.c $(srcdir)/treelang/parse.y
+treelang/parse.c treelang/parse.h treelang/parse.output: treelang/parse.y
+       -$(BISON) $(BISONFLAGS) -v --defines --output=treelang/parse.c $<
 
 # -v