# TCFLAGS is used for compilations with the GCC just built.
XCFLAGS =
TCFLAGS =
-CFLAGS = -g
+CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
STAGE1_CFLAGS = -g @stage1_cflags@
STAGE1_CHECKING = -DENABLE_CHECKING -DENABLE_ASSERT_CHECKING
datarootdir = @datarootdir@
docdir = @docdir@
-# Directory in which to bujild HTML
+# Directory in which to build HTML
build_htmldir = $(objdir)/HTML/gcc-$(version)
# Directory in which to put HTML
htmldir = @htmldir@
# even if we are cross-building GCC.
BUILD_LIBS = $(BUILD_LIBIBERTY)
-BUILD_RTL = build/rtl.o build/read-rtl.o build/ggc-none.o \
+BUILD_RTL = build/rtl.o build/read-rtl.o build/ggc-none.o build/vec.o \
build/min-insn-modes.o build/gensupport.o build/print-rtl.o
BUILD_ERRORS = build/errors.o
# might be on a read-only file system. If configured for maintainer mode
# then do allow autoconf to be run.
-$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac
+$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/aclocal.m4 \
+ $(srcdir)/acinclude.m4
(cd $(srcdir) && autoconf)
gccbug: $(srcdir)/gccbug.in
ipa-reference.o : ipa-reference.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
pointer-set.h $(GGC_H) $(IPA_REFERENCE_H) $(IPA_UTILS_H) $(C_COMMON_H) \
- $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h $(DIAGNOSTIC_H)
+ $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h \
+ $(DIAGNOSTIC_H) $(FUNCTION_H)
+
ipa-pure-const.o : ipa-pure-const.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
- pointer-set.h $(GGC_H) $(IPA_UTILS_H) $(C_COMMON_H) \
+ pointer-set.h $(GGC_H) $(IPA_UTILS_H) $(C_COMMON_H) $(TARGET_H) \
$(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h $(DIAGNOSTIC_H)
ipa-type-escape.o : ipa-type-escape.c $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TM_H) $(TREE_H) $(TREE_FLOW_H) $(TREE_INLINE_H) langhooks.h \
pointer-set.h $(GGC_H) $(IPA_TYPE_ESCAPE_H) $(IPA_UTILS_H) $(C_COMMON_H) \
- $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h $(DIAGNOSTIC_H)
+ $(TREE_GIMPLE_H) $(CGRAPH_H) output.h $(FLAGS_H) tree-pass.h \
+ $(DIAGNOSTIC_H) $(FUNCTION_H)
+
coverage.o : coverage.c $(GCOV_IO_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) $(RTL_H) $(TREE_H) $(FLAGS_H) output.h $(REGS_H) $(EXPR_H) \
$(FUNCTION_H) toplev.h $(GGC_H) langhooks.h $(COVERAGE_H) gt-coverage.h \
coretypes.h $(GTM_H) insn-constants.h $(RTL_H) $(TM_P_H) \
$(FUNCTION_H) $(REGS_H) $(RECOG_H) $(REAL_H) output.h $(FLAGS_H) \
$(RESOURCE_H) toplev.h reload.h except.h tm-constrs.h
+# This pulls in tm-pred.h which contains inline functions wrapping up
+# predicates from the back-end so those functions must be discarded.
+# No big deal since gencondmd.c is a dummy file for non-GCC compilers.
+build/gencondmd.o : \
+ BUILD_CFLAGS := $(filter-out -fkeep-inline-functions, $(BUILD_CFLAGS))
# ...these are the programs themselves.
build/genattr.o : genattr.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H) \
extract flags mddeps opinit output peep preds recog
$(genprogmd:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_ERRORS)
-# These programs need files over and above what they get from the above list.
-build/genextract$(build_exeext) : build/vec.o
-
-build/genautomata$(build_exeext) : build/vec.o
+# These programs need libs over and above what they get from the above list.
build/genautomata$(build_exeext) : BUILD_LIBS += -lm
# These programs are not linked with the MD reader.
doc/gccinstall.dvi: $(TEXI_GCCINSTALL_FILES)
$(TEXI2DVI) -I . -I $(abs_docdir) -I $(abs_docdir)/include -o $@ $<
-html:: $(build_htmldir)/cpp/index.html $(build_htmldir)/gcc/index.html \
+# List the directories or single hmtl files which are installed by
+# install-html. The lang.html file triggers language fragments to build
+# html documentation. Installing language fragment documentation is not
+# yet supported.
+HTMLS_INSTALL=$(build_htmldir)/cpp $(build_htmldir)/gcc \
+ $(build_htmldir)/gccinstall $(build_htmldir)/gccint \
+ $(build_htmldir)/cppinternals
+
+# List the html file targets.
+HTMLS_BUILD=$(build_htmldir)/cpp/index.html $(build_htmldir)/gcc/index.html \
$(build_htmldir)/gccinstall/index.html $(build_htmldir)/gccint/index.html \
$(build_htmldir)/cppinternals/index.html lang.html
-install-html:: installdirs
- cp -rp $(build_htmldir) $(DESTDIR)/$(htmldir)
+html:: $(HTMLS_BUILD)
$(build_htmldir)/%/index.html: %.texi
$(mkinstalldirs) $(@D)
else true; fi; \
else true; fi;
+html__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+html__mkdir_p = mkdir -p --
+
+install-html: $(HTMLS_BUILD)
+ @$(NORMAL_INSTALL)
+ test -z "$(htmldir)" || $(html__mkdir_p) "$(DESTDIR)$(htmldir)"
+ @list='$(HTMLS_INSTALL)'; for p in $$list; do \
+ if test -f "$$p" || test -d "$$p"; then d=""; else d="$(srcdir)/"; fi; \
+ f=$(html__strip_dir) \
+ if test -d "$$d$$p"; then \
+ echo " $(html__mkdir_p) '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(html__mkdir_p) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+ echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
+ else \
+ echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
+ fi; \
+ done
+
# Install the man pages.
install-man: lang.install-man \
$(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) \
for file in $$dir/*$(objext); do \
case "$@" in \
slowcompare* ) \
- tail +16c ./$$file > tmp-foo1; \
- tail +16c stage$$stage/$$file > tmp-foo2; \
+ if tail -c +1 </dev/null >/dev/null 2>&1; then \
+ skip16='-c +17'; \
+ else \
+ skip16='+17c'; \
+ fi; \
+ tail $$skip16 ./$$file > tmp-foo1; \
+ tail $$skip16 stage$$stage/$$file > tmp-foo2; \
cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1; \
cmpret=$$?; \
;; \