aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--Makefile.def13
-rw-r--r--Makefile.in66
-rw-r--r--Makefile.tpl22
-rw-r--r--gcc/doc/sourcebuild.texi3
5 files changed, 87 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index e8fe7ad..533bc9f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-04-01 Steve Ellcey <sje@cup.hp.com>
+
+ * Makefil.def (languages): New entries.
+ * Makefile.tpl (check-gcc-*): New generic target.
+ * Makefile.in: Regenerate.
+ * gcc/doc/sourcebuild.texi: Update front-end requirements.
+
2009-03-25 Erven Rohou <erven.rohou@inria.fr>
* MAINTAINERS: Update my email address.
diff --git a/Makefile.def b/Makefile.def
index a0a5266..c6a9291 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -541,6 +541,19 @@ dependencies = { module=all-target-libgloss; on=all-target-newlib; };
dependencies = { module=all-target-winsup; on=all-target-libiberty; };
dependencies = { module=all-target-winsup; on=all-target-libtermcap; };
+languages = { language=c; gcc-check-target=check-gcc; };
+languages = { language=c++; gcc-check-target=check-c++;
+ lib-check-target=check-target-libstdc++-v3; };
+languages = { language=fortran; gcc-check-target=check-fortran;
+ lib-check-target=check-target-libgfortran; };
+languages = { language=java; gcc-check-target=check-java;
+ lib-check-target=check-target-libjava; };
+languages = { language=ada; gcc-check-target=check-ada;
+ lib-check-target=check-target-libada; };
+languages = { language=objc; gcc-check-target=check-objc;
+ lib-check-target=check-target-libobjc; };
+languages = { language=obj-c++; gcc-check-target=check-obj-c++; };
+
// Toplevel bootstrap
bootstrap_stage = {
id=1 ;
diff --git a/Makefile.in b/Makefile.in
index 26d1d01..de33e11 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -52921,19 +52921,63 @@ cross: all-build all-gas all-ld
@endif gcc-no-bootstrap
@if gcc
-.PHONY: check-gcc-c++
+
+.PHONY: check-gcc-c check-c
+check-gcc-c:
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-gcc);
+check-c: check-gcc-c
+
+.PHONY: check-gcc-c++ check-c++
check-gcc-c++:
- @if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(HOST_EXPORTS) \
- (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
- else \
- true; \
- fi
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++);
+check-c++: check-gcc-c++ check-target-libstdc++-v3
+
+.PHONY: check-gcc-fortran check-fortran
+check-gcc-fortran:
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-fortran);
+check-fortran: check-gcc-fortran check-target-libgfortran
+
+.PHONY: check-gcc-java check-java
+check-gcc-java:
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-java);
+check-java: check-gcc-java check-target-libjava
+
+.PHONY: check-gcc-ada check-ada
+check-gcc-ada:
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-ada);
+check-ada: check-gcc-ada check-target-libada
+
+.PHONY: check-gcc-objc check-objc
+check-gcc-objc:
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-objc);
+check-objc: check-gcc-objc check-target-libobjc
+
+.PHONY: check-gcc-obj-c++ check-obj-c++
+check-gcc-obj-c++:
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-obj-c++);
+check-obj-c++: check-gcc-obj-c++
-.PHONY: check-c++
-check-c++: check-target-libstdc++-v3 check-gcc-c++
# Install the gcc headers files, but not the fixed include files,
# which Cygnus is not allowed to distribute. This rule is very
diff --git a/Makefile.tpl b/Makefile.tpl
index acb349f..1de3b06 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -1216,19 +1216,15 @@ cross: all-build all-gas all-ld
@endif gcc-no-bootstrap
@if gcc
-.PHONY: check-gcc-c++
-check-gcc-c++:
- @if [ -f ./gcc/Makefile ] ; then \
- r=`${PWD_COMMAND}`; export r; \
- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
- $(HOST_EXPORTS) \
- (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
- else \
- true; \
- fi
-
-.PHONY: check-c++
-check-c++: check-target-libstdc++-v3 check-gcc-c++
+[+ FOR languages +]
+.PHONY: check-gcc-[+language+] check-[+language+]
+check-gcc-[+language+]:
+ r=`${PWD_COMMAND}`; export r; \
+ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+ $(HOST_EXPORTS) \
+ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) [+gcc-check-target+]);
+check-[+language+]: check-gcc-[+language+][+ IF lib-check-target +] [+ lib-check-target +][+ ENDIF lib-check-target +]
+[+ ENDFOR languages +]
# Install the gcc headers files, but not the fixed include files,
# which Cygnus is not allowed to distribute. This rule is very
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index fb63982..e437848 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -499,6 +499,9 @@ directory. FIXME: document this further.
@item
Details of the directories of any runtime libraries in
@file{gcc/doc/sourcebuild.texi}.
+@item
+Check targets in Makefile.def for the top-level Makefile to check just
+the compiler or the compiler and runtime library for the language.
@end itemize
If the front end is added to the official GCC source repository, the