From 45c281deb7a2e24a21f2f68a2a3652e30f27f953 Mon Sep 17 00:00:00 2001 From: "James K. Lowden" Date: Mon, 10 Mar 2025 16:04:49 +0100 Subject: [PATCH] COBOL: config and build machinery * Makefile.def: Add libgcobol module and cobol language. * Makefile.in: Regenerate. * configure.ac: Add libgcobol module and cobol language. * configure: Regenerate. --- Makefile.def | 5 + Makefile.in | 527 ++++++++++++++++++++++++++++++++++++++++++++++++++- configure | 53 ++++++ configure.ac | 50 +++++ 4 files changed, 631 insertions(+), 4 deletions(-) diff --git a/Makefile.def b/Makefile.def index 19954e7d731..d2a1cd55b6e 100644 --- a/Makefile.def +++ b/Makefile.def @@ -209,6 +209,7 @@ target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; }; target_modules = { module= libitm; lib_path=.libs; }; target_modules = { module= libatomic; bootstrap=true; lib_path=.libs; }; target_modules = { module= libgrust; }; +target_modules = { module= libgcobol; }; // These are (some of) the make targets to be done in each subdirectory. // Not all; these are the ones which don't have special options. @@ -655,6 +656,7 @@ lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; }; // built newlib on some targets (e.g. Cygwin). It still needs // a dependency on libgcc for native targets to configure. lang_env_dependencies = { module=libiberty; no_c=true; }; +lang_env_dependencies = { module=libgcobol; cxx=true; }; dependencies = { module=configure-target-fastjar; on=configure-target-zlib; }; dependencies = { module=all-target-fastjar; on=all-target-zlib; }; @@ -690,6 +692,7 @@ dependencies = { module=install-target-libvtv; on=install-target-libgcc; }; dependencies = { module=install-target-libitm; on=install-target-libgcc; }; dependencies = { module=install-target-libobjc; on=install-target-libgcc; }; dependencies = { module=install-target-libstdc++-v3; on=install-target-libgcc; }; +dependencies = { module=install-target-libgcobol; on=install-target-libstdc++-v3; }; // Target modules in the 'src' repository. lang_env_dependencies = { module=libtermcap; }; @@ -727,6 +730,8 @@ languages = { language=d; gcc-check-target=check-d; lib-check-target=check-target-libphobos; }; languages = { language=jit; gcc-check-target=check-jit; }; languages = { language=rust; gcc-check-target=check-rust; }; +languages = { language=cobol; gcc-check-target=check-cobol; + lib-check-target=check-target-libgcobol; }; // Toplevel bootstrap bootstrap_stage = { id=1 ; }; diff --git a/Makefile.in b/Makefile.in index 966d6045496..87880c62ad2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1162,7 +1162,8 @@ configure-target: \ maybe-configure-target-libgomp \ maybe-configure-target-libitm \ maybe-configure-target-libatomic \ - maybe-configure-target-libgrust + maybe-configure-target-libgrust \ + maybe-configure-target-libgcobol # The target built for a native non-bootstrap build. .PHONY: all @@ -1366,6 +1367,7 @@ all-target: maybe-all-target-libitm all-target: maybe-all-target-libatomic @endif target-libatomic-no-bootstrap all-target: maybe-all-target-libgrust +all-target: maybe-all-target-libgcobol # Do a target for all the subdirectories. A ``make do-X'' will do a # ``make X'' in all subdirectories (because, in general, there is a @@ -1464,6 +1466,7 @@ info-target: maybe-info-target-libgomp info-target: maybe-info-target-libitm info-target: maybe-info-target-libatomic info-target: maybe-info-target-libgrust +info-target: maybe-info-target-libgcobol .PHONY: do-dvi do-dvi: @@ -1557,6 +1560,7 @@ dvi-target: maybe-dvi-target-libgomp dvi-target: maybe-dvi-target-libitm dvi-target: maybe-dvi-target-libatomic dvi-target: maybe-dvi-target-libgrust +dvi-target: maybe-dvi-target-libgcobol .PHONY: do-pdf do-pdf: @@ -1650,6 +1654,7 @@ pdf-target: maybe-pdf-target-libgomp pdf-target: maybe-pdf-target-libitm pdf-target: maybe-pdf-target-libatomic pdf-target: maybe-pdf-target-libgrust +pdf-target: maybe-pdf-target-libgcobol .PHONY: do-html do-html: @@ -1743,6 +1748,7 @@ html-target: maybe-html-target-libgomp html-target: maybe-html-target-libitm html-target: maybe-html-target-libatomic html-target: maybe-html-target-libgrust +html-target: maybe-html-target-libgcobol .PHONY: do-TAGS do-TAGS: @@ -1836,6 +1842,7 @@ TAGS-target: maybe-TAGS-target-libgomp TAGS-target: maybe-TAGS-target-libitm TAGS-target: maybe-TAGS-target-libatomic TAGS-target: maybe-TAGS-target-libgrust +TAGS-target: maybe-TAGS-target-libgcobol .PHONY: do-install-info do-install-info: @@ -1929,6 +1936,7 @@ install-info-target: maybe-install-info-target-libgomp install-info-target: maybe-install-info-target-libitm install-info-target: maybe-install-info-target-libatomic install-info-target: maybe-install-info-target-libgrust +install-info-target: maybe-install-info-target-libgcobol .PHONY: do-install-dvi do-install-dvi: @@ -2022,6 +2030,7 @@ install-dvi-target: maybe-install-dvi-target-libgomp install-dvi-target: maybe-install-dvi-target-libitm install-dvi-target: maybe-install-dvi-target-libatomic install-dvi-target: maybe-install-dvi-target-libgrust +install-dvi-target: maybe-install-dvi-target-libgcobol .PHONY: do-install-pdf do-install-pdf: @@ -2115,6 +2124,7 @@ install-pdf-target: maybe-install-pdf-target-libgomp install-pdf-target: maybe-install-pdf-target-libitm install-pdf-target: maybe-install-pdf-target-libatomic install-pdf-target: maybe-install-pdf-target-libgrust +install-pdf-target: maybe-install-pdf-target-libgcobol .PHONY: do-install-html do-install-html: @@ -2208,6 +2218,7 @@ install-html-target: maybe-install-html-target-libgomp install-html-target: maybe-install-html-target-libitm install-html-target: maybe-install-html-target-libatomic install-html-target: maybe-install-html-target-libgrust +install-html-target: maybe-install-html-target-libgcobol .PHONY: do-installcheck do-installcheck: @@ -2301,6 +2312,7 @@ installcheck-target: maybe-installcheck-target-libgomp installcheck-target: maybe-installcheck-target-libitm installcheck-target: maybe-installcheck-target-libatomic installcheck-target: maybe-installcheck-target-libgrust +installcheck-target: maybe-installcheck-target-libgcobol .PHONY: do-mostlyclean do-mostlyclean: @@ -2394,6 +2406,7 @@ mostlyclean-target: maybe-mostlyclean-target-libgomp mostlyclean-target: maybe-mostlyclean-target-libitm mostlyclean-target: maybe-mostlyclean-target-libatomic mostlyclean-target: maybe-mostlyclean-target-libgrust +mostlyclean-target: maybe-mostlyclean-target-libgcobol .PHONY: do-clean do-clean: @@ -2487,6 +2500,7 @@ clean-target: maybe-clean-target-libgomp clean-target: maybe-clean-target-libitm clean-target: maybe-clean-target-libatomic clean-target: maybe-clean-target-libgrust +clean-target: maybe-clean-target-libgcobol .PHONY: do-distclean do-distclean: @@ -2580,6 +2594,7 @@ distclean-target: maybe-distclean-target-libgomp distclean-target: maybe-distclean-target-libitm distclean-target: maybe-distclean-target-libatomic distclean-target: maybe-distclean-target-libgrust +distclean-target: maybe-distclean-target-libgcobol .PHONY: do-maintainer-clean do-maintainer-clean: @@ -2673,6 +2688,7 @@ maintainer-clean-target: maybe-maintainer-clean-target-libgomp maintainer-clean-target: maybe-maintainer-clean-target-libitm maintainer-clean-target: maybe-maintainer-clean-target-libatomic maintainer-clean-target: maybe-maintainer-clean-target-libgrust +maintainer-clean-target: maybe-maintainer-clean-target-libgcobol # Here are the targets which correspond to the do-X targets. @@ -2823,7 +2839,8 @@ check-target: \ maybe-check-target-libgomp \ maybe-check-target-libitm \ maybe-check-target-libatomic \ - maybe-check-target-libgrust + maybe-check-target-libgrust \ + maybe-check-target-libgcobol do-check: @: $(MAKE); $(unstage) @@ -3020,7 +3037,8 @@ install-target: \ maybe-install-target-libgomp \ maybe-install-target-libitm \ maybe-install-target-libatomic \ - maybe-install-target-libgrust + maybe-install-target-libgrust \ + maybe-install-target-libgcobol uninstall: @echo "the uninstall target is not supported in this tree" @@ -3133,7 +3151,8 @@ install-strip-target: \ maybe-install-strip-target-libgomp \ maybe-install-strip-target-libitm \ maybe-install-strip-target-libatomic \ - maybe-install-strip-target-libgrust + maybe-install-strip-target-libgrust \ + maybe-install-strip-target-libgcobol ### other supporting targets @@ -63688,6 +63707,491 @@ maintainer-clean-target-libgrust: + + +.PHONY: configure-target-libgcobol maybe-configure-target-libgcobol +maybe-configure-target-libgcobol: +@if gcc-bootstrap +configure-target-libgcobol: stage_current +@endif gcc-bootstrap +@if target-libgcobol +maybe-configure-target-libgcobol: configure-target-libgcobol +configure-target-libgcobol: + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + echo "Checking multilib configuration for libgcobol..."; \ + $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcobol; \ + $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libgcobol/multilib.tmp 2> /dev/null; \ + if test -r $(TARGET_SUBDIR)/libgcobol/multilib.out; then \ + if cmp -s $(TARGET_SUBDIR)/libgcobol/multilib.tmp $(TARGET_SUBDIR)/libgcobol/multilib.out; then \ + rm -f $(TARGET_SUBDIR)/libgcobol/multilib.tmp; \ + else \ + rm -f $(TARGET_SUBDIR)/libgcobol/Makefile; \ + mv $(TARGET_SUBDIR)/libgcobol/multilib.tmp $(TARGET_SUBDIR)/libgcobol/multilib.out; \ + fi; \ + else \ + mv $(TARGET_SUBDIR)/libgcobol/multilib.tmp $(TARGET_SUBDIR)/libgcobol/multilib.out; \ + fi; \ + test ! -f $(TARGET_SUBDIR)/libgcobol/Makefile || exit 0; \ + $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgcobol; \ + $(NORMAL_TARGET_EXPORTS) \ + echo Configuring in $(TARGET_SUBDIR)/libgcobol; \ + cd "$(TARGET_SUBDIR)/libgcobol" || exit 1; \ + case $(srcdir) in \ + /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ + *) topdir=`echo $(TARGET_SUBDIR)/libgcobol/ | \ + sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ + esac; \ + module_srcdir=libgcobol; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) \ + $$s/$$module_srcdir/configure \ + --srcdir=$${topdir}/$$module_srcdir \ + $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ + --target=${target_alias} \ + || exit 1 +@endif target-libgcobol + + + + + +.PHONY: all-target-libgcobol maybe-all-target-libgcobol +maybe-all-target-libgcobol: +@if gcc-bootstrap +all-target-libgcobol: stage_current +@endif gcc-bootstrap +@if target-libgcobol +TARGET-target-libgcobol=all +maybe-all-target-libgcobol: all-target-libgcobol +all-target-libgcobol: configure-target-libgcobol + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \ + $(TARGET-target-libgcobol)) +@endif target-libgcobol + + + + + +.PHONY: check-target-libgcobol maybe-check-target-libgcobol +maybe-check-target-libgcobol: +@if target-libgcobol +maybe-check-target-libgcobol: check-target-libgcobol + +check-target-libgcobol: + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) check) + +@endif target-libgcobol + +.PHONY: install-target-libgcobol maybe-install-target-libgcobol +maybe-install-target-libgcobol: +@if target-libgcobol +maybe-install-target-libgcobol: install-target-libgcobol + +install-target-libgcobol: installdirs + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) + +@endif target-libgcobol + +.PHONY: install-strip-target-libgcobol maybe-install-strip-target-libgcobol +maybe-install-strip-target-libgcobol: +@if target-libgcobol +maybe-install-strip-target-libgcobol: install-strip-target-libgcobol + +install-strip-target-libgcobol: installdirs + @: $(MAKE); $(unstage) + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) + +@endif target-libgcobol + +# Other targets (info, dvi, pdf, etc.) + +.PHONY: maybe-info-target-libgcobol info-target-libgcobol +maybe-info-target-libgcobol: +@if target-libgcobol +maybe-info-target-libgcobol: info-target-libgcobol + +info-target-libgcobol: \ + configure-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing info in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + info) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-dvi-target-libgcobol dvi-target-libgcobol +maybe-dvi-target-libgcobol: +@if target-libgcobol +maybe-dvi-target-libgcobol: dvi-target-libgcobol + +dvi-target-libgcobol: \ + configure-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing dvi in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + dvi) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-pdf-target-libgcobol pdf-target-libgcobol +maybe-pdf-target-libgcobol: +@if target-libgcobol +maybe-pdf-target-libgcobol: pdf-target-libgcobol + +pdf-target-libgcobol: \ + configure-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing pdf in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + pdf) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-html-target-libgcobol html-target-libgcobol +maybe-html-target-libgcobol: +@if target-libgcobol +maybe-html-target-libgcobol: html-target-libgcobol + +html-target-libgcobol: \ + configure-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing html in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + html) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-TAGS-target-libgcobol TAGS-target-libgcobol +maybe-TAGS-target-libgcobol: +@if target-libgcobol +maybe-TAGS-target-libgcobol: TAGS-target-libgcobol + +TAGS-target-libgcobol: \ + configure-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing TAGS in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + TAGS) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-install-info-target-libgcobol install-info-target-libgcobol +maybe-install-info-target-libgcobol: +@if target-libgcobol +maybe-install-info-target-libgcobol: install-info-target-libgcobol + +install-info-target-libgcobol: \ + configure-target-libgcobol \ + info-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-info in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-info) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-install-dvi-target-libgcobol install-dvi-target-libgcobol +maybe-install-dvi-target-libgcobol: +@if target-libgcobol +maybe-install-dvi-target-libgcobol: install-dvi-target-libgcobol + +install-dvi-target-libgcobol: \ + configure-target-libgcobol \ + dvi-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-dvi in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-dvi) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-install-pdf-target-libgcobol install-pdf-target-libgcobol +maybe-install-pdf-target-libgcobol: +@if target-libgcobol +maybe-install-pdf-target-libgcobol: install-pdf-target-libgcobol + +install-pdf-target-libgcobol: \ + configure-target-libgcobol \ + pdf-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-pdf in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-pdf) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-install-html-target-libgcobol install-html-target-libgcobol +maybe-install-html-target-libgcobol: +@if target-libgcobol +maybe-install-html-target-libgcobol: install-html-target-libgcobol + +install-html-target-libgcobol: \ + configure-target-libgcobol \ + html-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing install-html in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + install-html) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-installcheck-target-libgcobol installcheck-target-libgcobol +maybe-installcheck-target-libgcobol: +@if target-libgcobol +maybe-installcheck-target-libgcobol: installcheck-target-libgcobol + +installcheck-target-libgcobol: \ + configure-target-libgcobol + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing installcheck in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + installcheck) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-mostlyclean-target-libgcobol mostlyclean-target-libgcobol +maybe-mostlyclean-target-libgcobol: +@if target-libgcobol +maybe-mostlyclean-target-libgcobol: mostlyclean-target-libgcobol + +mostlyclean-target-libgcobol: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + mostlyclean) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-clean-target-libgcobol clean-target-libgcobol +maybe-clean-target-libgcobol: +@if target-libgcobol +maybe-clean-target-libgcobol: clean-target-libgcobol + +clean-target-libgcobol: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing clean in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + clean) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-distclean-target-libgcobol distclean-target-libgcobol +maybe-distclean-target-libgcobol: +@if target-libgcobol +maybe-distclean-target-libgcobol: distclean-target-libgcobol + +distclean-target-libgcobol: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing distclean in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + distclean) \ + || exit 1 + +@endif target-libgcobol + +.PHONY: maybe-maintainer-clean-target-libgcobol maintainer-clean-target-libgcobol +maybe-maintainer-clean-target-libgcobol: +@if target-libgcobol +maybe-maintainer-clean-target-libgcobol: maintainer-clean-target-libgcobol + +maintainer-clean-target-libgcobol: + @: $(MAKE); $(unstage) + @[ -f $(TARGET_SUBDIR)/libgcobol/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ + echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgcobol"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/libgcobol && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ + maintainer-clean) \ + || exit 1 + +@endif target-libgcobol + + + @if target-libgomp .PHONY: check-target-libgomp-c++ check-target-libgomp-c++: @@ -63822,6 +64326,14 @@ check-gcc-rust: gcc-site.exp (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-rust); check-rust: check-gcc-rust +.PHONY: check-gcc-cobol check-cobol +check-gcc-cobol: gcc-site.exp + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(HOST_EXPORTS) \ + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-cobol); +check-cobol: check-gcc-cobol check-target-libgcobol + # The gcc part of install-no-fixedincludes, which relies on an intimate # knowledge of how a number of gcc internal targets (inter)operate. Delegate. @@ -67383,6 +67895,7 @@ configure-stagefeedback-target-libatomic: maybe-all-stagefeedback-gcc configure-stageautoprofile-target-libatomic: maybe-all-stageautoprofile-gcc configure-stageautofeedback-target-libatomic: maybe-all-stageautofeedback-gcc configure-target-libgrust: stage_last +configure-target-libgcobol: stage_last @endif gcc-bootstrap @if gcc-no-bootstrap @@ -67410,6 +67923,7 @@ configure-target-libgomp: maybe-all-gcc configure-target-libitm: maybe-all-gcc configure-target-libatomic: maybe-all-gcc configure-target-libgrust: maybe-all-gcc +configure-target-libgcobol: maybe-all-gcc @endif gcc-no-bootstrap @@ -68654,6 +69168,7 @@ install-target-libvtv: maybe-install-target-libgcc install-target-libitm: maybe-install-target-libgcc install-target-libobjc: maybe-install-target-libgcc install-target-libstdc++-v3: maybe-install-target-libgcc +install-target-libgcobol: maybe-install-target-libstdc++-v3 all-target-libgloss: maybe-all-target-newlib all-target-winsup: maybe-all-target-libtermcap configure-target-libgfortran: maybe-all-target-libquadmath @@ -68873,6 +69388,7 @@ configure-target-libgomp: maybe-all-target-libgcc configure-target-libitm: maybe-all-target-libgcc configure-target-libatomic: maybe-all-target-libgcc configure-target-libgrust: maybe-all-target-libgcc +configure-target-libgcobol: maybe-all-target-libgcc @endif gcc-no-bootstrap @@ -68923,6 +69439,9 @@ configure-target-libatomic: maybe-all-target-newlib maybe-all-target-libgloss configure-target-libgrust: maybe-all-target-newlib maybe-all-target-libgloss +configure-target-libgcobol: maybe-all-target-newlib maybe-all-target-libgloss +configure-target-libgcobol: maybe-all-target-libstdc++-v3 + CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@ GDB_TK = @GDB_TK@ diff --git a/configure b/configure index e2b143efbba..2a91458effc 100755 --- a/configure +++ b/configure @@ -2863,6 +2863,7 @@ target_libraries="target-libgcc \ target-libgfortran \ target-libffi \ target-libobjc \ + target-libgcobol \ target-libada \ target-libgm2 \ target-libgo \ @@ -3537,6 +3538,26 @@ $as_echo "yes" >&6; } fi fi +# Disable libgcobol on unsupported systems. +# For testing, you can override this with --enable-libgcobol. +if test -d ${srcdir}/libgcobol; then + if test x$enable_libgcobol = x; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgcobol support" >&5 +$as_echo_n "checking for libgcobol support... " >&6; } + if (srcdir=${srcdir}/libgcobol; \ + . ${srcdir}/configure.tgt; \ + test "$LIBGCOBOL_SUPPORTED" != "yes") + then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + noconfigdirs="$noconfigdirs target-libgcobol" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + fi + fi +fi + # Disable Fortran for some systems. case "${target}" in mmix-*-*) @@ -3548,6 +3569,38 @@ case "${target}" in ;; esac +# Always enable COBOL for --enable-languages=*cobol* +# Otherwise, enable COBOL only for known architectures +case ,${enable_languages}, in + *,cobol,*) + case ,${enable_languages}, in + *,c++,*) + ;; + *) + # We have an explicit cobol, but no c++. We need c++, because cobol + # requires libstdc++ + enable_languages="$enable_languages,c++" + ;; + esac + ;; + *) + case "${target}" in + x86_64-*-*|aarch64-*-*) + ;; + *-*-*) + unsupported_languages="$unsupported_languages cobol" + ;; + esac + case "${host}" in + x86_64-*-*|aarch64-*-*) + ;; + *-*-*) + unsupported_languages="$unsupported_languages cobol" + ;; + esac + ;; +esac + # Disable libffi for some systems. case "${target}" in powerpc-*-darwin*) diff --git a/configure.ac b/configure.ac index af894eda400..414578566fa 100644 --- a/configure.ac +++ b/configure.ac @@ -161,6 +161,7 @@ target_libraries="target-libgcc \ target-libgfortran \ target-libffi \ target-libobjc \ + target-libgcobol \ target-libada \ target-libgm2 \ target-libgo \ @@ -760,6 +761,23 @@ if test -d ${srcdir}/libphobos; then fi fi +# Disable libgcobol on unsupported systems. +# For testing, you can override this with --enable-libgcobol. +if test -d ${srcdir}/libgcobol; then + if test x$enable_libgcobol = x; then + AC_MSG_CHECKING([for libgcobol support]) + if (srcdir=${srcdir}/libgcobol; \ + . ${srcdir}/configure.tgt; \ + test "$LIBGCOBOL_SUPPORTED" != "yes") + then + AC_MSG_RESULT([no]) + noconfigdirs="$noconfigdirs target-libgcobol" + else + AC_MSG_RESULT([yes]) + fi + fi +fi + # Disable Fortran for some systems. case "${target}" in mmix-*-*) @@ -771,6 +789,38 @@ case "${target}" in ;; esac +# Always enable COBOL for --enable-languages=*cobol* +# Otherwise, enable COBOL only for known architectures +case ,${enable_languages}, in + *,cobol,*) + case ,${enable_languages}, in + *,c++,*) + ;; + *) + # We have an explicit cobol, but no c++. We need c++, because cobol + # requires libstdc++ + enable_languages="$enable_languages,c++" + ;; + esac + ;; + *) + case "${target}" in + x86_64-*-*|aarch64-*-*) + ;; + *-*-*) + unsupported_languages="$unsupported_languages cobol" + ;; + esac + case "${host}" in + x86_64-*-*|aarch64-*-*) + ;; + *-*-*) + unsupported_languages="$unsupported_languages cobol" + ;; + esac + ;; +esac + # Disable libffi for some systems. case "${target}" in powerpc-*-darwin*)