* Makefile.def (target_modules): Remove libcilkrts. * Makefile.in: Ditto. * configure: Ditto. * configure.ac: Ditto. contrib/ * contrib/gcc_update: Ditto. gcc/ * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o, c-family/c-cilkplus.o, c-family/array-notation-common.o, cilk-common.o, cilk.h, cilk-common.c): Remove. * builtin-types.def (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove. * builtins.c (is_builtin_name): Remove cilkplus condition. (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove. * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN, cilk-builtins.def, cilkplus.def): Remove. * cif-code.def (CILK_SPAWN): Remove. * cilk-builtins.def: Delete. * cilk-common.c: Ditto. * cilk.h: Ditto. * cilkplus.def: Ditto. * config/darwin.h (fcilkplus): Delete. * cppbuiltin.c: Ditto. * doc/extend.texi: Remove cilkplus doc. * doc/generic.texi: Ditto. * doc/invoke.texi: Ditto. * doc/passes.texi: Ditto. * gcc.c (fcilkplus): Remove. * gengtype.c (cilk.h): Remove. * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus support. * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD): Remove. * gimplify.c (gimplify_return_expr, maybe_fold_stmt, gimplify_call_expr, is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove cilkplus conditions. * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary, inline_read_section): Ditto. * ipa-inline-analysis.c (cilk.h): Remove. * ira.c (ira_setup_eliminable_regset): Remove cilkplus support. * lto-wrapper.c (merge_and_complain, append_compiler_options, append_linker_options): Remove condition for fcilkplus. * lto/lto-lang.c (cilk.h): Remove. (lto_init): Remove condition for fcilkplus. * omp-expand.c (expand_cilk_for_call): Delete. (expand_omp_taskreg, expand_omp_for_static_chunk, expand_omp_for): Remove cilkplus conditions. (expand_cilk_for): Delete. * omp-general.c (omp_extract_for_data): Remove cilkplus support. * omp-low.c (scan_sharing_clauses, create_omp_child_function, execute_lower_omp, diagnose_sb_0): Ditto. * omp-simd-clone.c (simd_clone_clauses_extract): Ditto. * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. * tree-nested.c: Ditto. * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support. (dump_generic_node): Ditto. * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt): Delete. * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete. gcc/c-family/ * array-notation-common.c: Delete. * c-cilkplus.c: Ditto. * c-common.c (_Cilk_spawn, _Cilk_sync, _Cilk_for): Remove. * c-common.def (ARRAY_NOTATION_REF): Remove. * c-common.h (RID_CILK_SPAWN, build_array_notation_expr, build_array_notation_ref, C_ORT_CILK, c_check_cilk_loop, c_validate_cilk_plus_loop, cilkplus_an_parts, cilk_ignorable_spawn_rhs_op, cilk_recognize_spawn): Remove. * c-gimplify.c (CILK_SPAWN_STMT): Remove. * c-omp.c: Remove CILK_SIMD check. * c-pragma.c: Ditto. * c-pragma.h: Remove CILK related pragmas. * c-pretty-print.c (c_pretty_printer::postfix_expression): Remove ARRAY_NOTATION_REF condition. (c_pretty_printer::expression): Ditto. * c.opt (fcilkplus): Remove. * cilk.c: Delete. gcc/c/ * Make-lang.in (c/c-array-notation.o): Remove. * c-array-notation.c: Delete. * c-decl.c: Remove cilkplus condition. * c-parser.c (c_parser_cilk_simd, c_parser_cilk_for, c_parser_cilk_verify_simd, c_parser_array_notation, c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize, c_parser_cilk_simd_fn_vector_attrs, c_finish_cilk_simd_fn_tokens): Delete. (c_parser_declaration_or_fndef): Remove cilkplus condition. (c_parser_direct_declarator_inner): Ditto. (CILK_SIMD_FN_CLAUSE_MASK): Delete. (c_parser_attributes, c_parser_compound_statement, c_parser_statement_after_labels, c_parser_if_statement, c_parser_switch_statement, c_parser_while_statement, c_parser_do_statement, c_parser_for_statement, c_parser_unary_expression, c_parser_postfix_expression, c_parser_postfix_expression_after_primary, c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses, c_parser_omp_for_loop, c_finish_omp_declare_simd): Remove cilkplus support. * c-typeck.c (build_array_ref, build_function_call_vec, convert_arguments, lvalue_p, build_compound_expr, c_finish_return, c_finish_if_stmt, c_finish_loop, build_binary_op): Remove cilkplus support. gcc/cp/ * Make-lang.in (cp/cp-array-notation.o, cp/cp-cilkplus.o): Delete. * call.c (convert_for_arg_passing, build_cxx_call): Remove cilkplus. * constexpr.c (potential_constant_expression_1): Ditto. * cp-array-notation.c: Delete. * cp-cilkplus.c: Ditto. * cp-cilkplus.h: Ditto. * cp-gimplify.c (cp_gimplify_expr, cp_fold_r, cp_genericize): Remove cilkplus condition. * cp-objcp-common.c (ARRAY_NOTATION_REF): Delete. * cp-tree.h (cilkplus_an_triplet_types_ok_p): Delete. * decl.c (grokfndecl, finish_function): Remove cilkplus condition. * error.c (dump_decl, dump_expr): Remove ARRAY_NOTATION_REF condition. * lambda.c (cp-cilkplus.h): Remove. * parser.c (cp_parser_cilk_simd, cp_parser_cilk_for, cp_parser_cilk_simd_vectorlength): Delete. (cp_debug_parser, cp_parser_ctor_initializer_opt_and_function_body, cp_parser_postfix_expression, cp_parser_postfix_open_square_expression, cp_parser_statement, cp_parser_jump_statement, cp_parser_direct_declarator, cp_parser_late_return_type_opt, cp_parser_gnu_attribute_list, cp_parser_omp_clause_name, cp_parser_omp_clause_aligned, cp_parser_omp_clause_linear, cp_parser_omp_all_clauses, cp_parser_omp_flush, cp_parser_omp_for_cond, cp_parser_omp_for_incr, cp_parser_omp_for_loop_init, cp_parser_omp_for_loop, cp_parser_omp_declare_simd): Remove cilkplus support. (CILK_SIMD_FN_CLAUSE_MASK, cp_parser_late_parsing_cilk_simd_fn_info, cp_parser_cilk_grainsize): Remove. (cp_parser_pragma, c_parse_file): Remove cilkplus support. (cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear, cp_parser_cilk_simd_clause_name, cp_parser_cilk_simd_all_clauses, cp_parser_cilk_simd, cp_parser_cilk_for): Remove. * parser.h (IN_CILK_SIMD_FOR, IN_CILK_SPAWN): Remove. * pt.c (tsubst_attribute, tsubst_expr, tsubst_copy_and_build): Remove cilkplus support. * semantics.c (finish_goto_stmt, begin_while_stmt, finish_do_body, finish_init_stmt, finish_switch_cond, simplify_aggr_init_expr, finish_omp_clauses, finish_omp_clauses, finish_omp_for): Remove cilkplus support. * tree.c (lvalue_kind): Remove ARRAY_NOTATION_REF conditon. * typeck.c (cp_build_array_ref, cp_build_compound_expr, check_return_expr): Remove cilkplus support. gcc/testsuite/ * c-c++-common/attr-simd-3.c: Delete. * c-c++-common/cilk-plus/AN/an-if.c: Delete. * c-c++-common/cilk-plus/AN/array_test1.c: Delete. * c-c++-common/cilk-plus/AN/array_test2.c: Delete. * c-c++-common/cilk-plus/AN/array_test_ND.c: Delete. * c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Delete. * c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Delete. * c-c++-common/cilk-plus/AN/builtin_func_double.c: Delete. * c-c++-common/cilk-plus/AN/builtin_func_double2.c: Delete. * c-c++-common/cilk-plus/AN/comma_exp.c: Delete. * c-c++-common/cilk-plus/AN/conditional.c: Delete. * c-c++-common/cilk-plus/AN/decl-ptr-colon.c: Delete. * c-c++-common/cilk-plus/AN/dimensionless-arrays.c: Delete. * c-c++-common/cilk-plus/AN/exec-once.c: Delete. * c-c++-common/cilk-plus/AN/exec-once2.c: Delete. * c-c++-common/cilk-plus/AN/fn_ptr-2.c: Delete. * c-c++-common/cilk-plus/AN/fn_ptr.c: Delete. * c-c++-common/cilk-plus/AN/fp_triplet_values.c: Delete. * c-c++-common/cilk-plus/AN/gather-scatter-errors.c: Delete. * c-c++-common/cilk-plus/AN/gather_scatter.c: Delete. * c-c++-common/cilk-plus/AN/if_test.c: Delete. * c-c++-common/cilk-plus/AN/if_test_errors.c: Delete. * c-c++-common/cilk-plus/AN/misc.c: Delete. * c-c++-common/cilk-plus/AN/n-ptr-test.c: Delete. * c-c++-common/cilk-plus/AN/parser_errors.c: Delete. * c-c++-common/cilk-plus/AN/parser_errors2.c: Delete. * c-c++-common/cilk-plus/AN/parser_errors3.c: Delete. * c-c++-common/cilk-plus/AN/parser_errors4.c: Delete. * c-c++-common/cilk-plus/AN/pr57457-2.c: Delete. * c-c++-common/cilk-plus/AN/pr57457.c: Delete. * c-c++-common/cilk-plus/AN/pr57490.c: Delete. * c-c++-common/cilk-plus/AN/pr57541-2.c: Delete. * c-c++-common/cilk-plus/AN/pr57541.c: Delete. * c-c++-common/cilk-plus/AN/pr57577.c: Delete. * c-c++-common/cilk-plus/AN/pr58942.c: Delete. * c-c++-common/cilk-plus/AN/pr61191.c: Delete. * c-c++-common/cilk-plus/AN/pr61455-2.c: Delete. * c-c++-common/cilk-plus/AN/pr61455.c: Delete. * c-c++-common/cilk-plus/AN/pr61962.c: Delete. * c-c++-common/cilk-plus/AN/pr61963.c: Delete. * c-c++-common/cilk-plus/AN/pr62008.c: Delete. * c-c++-common/cilk-plus/AN/pr63884.c: Delete. * c-c++-common/cilk-plus/AN/rank_mismatch.c: Delete. * c-c++-common/cilk-plus/AN/rank_mismatch2.c: Delete. * c-c++-common/cilk-plus/AN/rank_mismatch3.c: Delete. * c-c++-common/cilk-plus/AN/sec_implicit.c: Delete. * c-c++-common/cilk-plus/AN/sec_implicit2.c: Delete. * c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Delete. * c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c: Delete. * c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c: Delete. * c-c++-common/cilk-plus/AN/sec_reduce_return.c: Delete. * c-c++-common/cilk-plus/AN/side-effects-1.c: Delete. * c-c++-common/cilk-plus/AN/test_builtin_return.c: Delete. * c-c++-common/cilk-plus/AN/test_sec_limits.c: Delete. * c-c++-common/cilk-plus/AN/tst_lngth.c: Delete. * c-c++-common/cilk-plus/AN/vla.c: Delete. * c-c++-common/cilk-plus/CK/Wparentheses-1.c: Delete. * c-c++-common/cilk-plus/CK/cilk-for-2.c: Delete. * c-c++-common/cilk-plus/CK/cilk-for-3.c: Delete. * c-c++-common/cilk-plus/CK/cilk-fors.c: Delete. * c-c++-common/cilk-plus/CK/cilk_for_errors.c: Delete. * c-c++-common/cilk-plus/CK/cilk_for_grain.c: Delete. * c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: Delete. * c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Delete. * c-c++-common/cilk-plus/CK/compound_cilk_spawn.c: Delete. * c-c++-common/cilk-plus/CK/concec_cilk_spawn.c: Delete. * c-c++-common/cilk-plus/CK/errors.c: Delete. * c-c++-common/cilk-plus/CK/fib.c: Delete. * c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Delete. * c-c++-common/cilk-plus/CK/fib_no_return.c: Delete. * c-c++-common/cilk-plus/CK/fib_no_sync.c: Delete. * c-c++-common/cilk-plus/CK/invalid_spawns.c: Delete. * c-c++-common/cilk-plus/CK/invalid_sync.c: Delete.c * c-c++-common/cilk-plus/CK/nested_cilk_for.c: Delete. * c-c++-common/cilk-plus/CK/no_args_error.c: Delete. * c-c++-common/cilk-plus/CK/pr59631.c: Delete. * c-c++-common/cilk-plus/CK/pr60197-2.c: Delete. * c-c++-common/cilk-plus/CK/pr60197.c: Delete. * c-c++-common/cilk-plus/CK/pr60469.c: Delete. * c-c++-common/cilk-plus/CK/pr60586.c: Delete. * c-c++-common/cilk-plus/CK/pr63307.c: Delete. * c-c++-common/cilk-plus/CK/pr69826-1.c: Delete. * c-c++-common/cilk-plus/CK/pr69826-2.c: Delete. * c-c++-common/cilk-plus/CK/pr79428-4.c: Delete. * c-c++-common/cilk-plus/CK/pr79428-7.c: Delete. * c-c++-common/cilk-plus/CK/spawn_in_return.c: Delete. * c-c++-common/cilk-plus/CK/spawnee_inline.c: Delete. * c-c++-common/cilk-plus/CK/spawner_inline.c: Delete. * c-c++-common/cilk-plus/CK/spawning_arg.c: Delete. * c-c++-common/cilk-plus/CK/steal_check.c: Delete. * c-c++-common/cilk-plus/CK/sync_wo_spawn.c: Delete. * c-c++-common/cilk-plus/CK/test__cilk.c: Delete. * c-c++-common/cilk-plus/CK/varargs_test.c: Delete. * c-c++-common/cilk-plus/PS/Wparentheses-1.c: Delete. * c-c++-common/cilk-plus/PS/body.c: Delete. * c-c++-common/cilk-plus/PS/clauses1.c: Delete. * c-c++-common/cilk-plus/PS/clauses2.c: Delete. * c-c++-common/cilk-plus/PS/clauses3.c: Delete. * c-c++-common/cilk-plus/PS/clauses4.c: Delete. * c-c++-common/cilk-plus/PS/for1.c: Delete. * c-c++-common/cilk-plus/PS/for2.c: Delete. * c-c++-common/cilk-plus/PS/for3.c: Delete. * c-c++-common/cilk-plus/PS/pr69363.c: Delete. * c-c++-common/cilk-plus/PS/reduction-1.c: Delete. * c-c++-common/cilk-plus/PS/reduction-2.c: Delete. * c-c++-common/cilk-plus/PS/reduction-3.c: Delete. * c-c++-common/cilk-plus/PS/run-1.c: Delete. * c-c++-common/cilk-plus/PS/safelen.c: Delete. * c-c++-common/cilk-plus/PS/vectorlength-2.c: Delete. * c-c++-common/cilk-plus/PS/vectorlength-3.c: Delete. * c-c++-common/cilk-plus/PS/vectorlength.c: Delete. * c-c++-common/cilk-plus/SE/ef_error.c: Delete. * c-c++-common/cilk-plus/SE/ef_error2.c: Delete. * c-c++-common/cilk-plus/SE/ef_error3.c: Delete. * c-c++-common/cilk-plus/SE/ef_test.c: Delete. * c-c++-common/cilk-plus/SE/ef_test2.c: Delete. * c-c++-common/cilk-plus/SE/vlength_errors.c: Delete. * g++.dg/cilk-plus/AN/array_function.c: Delete. * g++.dg/cilk-plus/AN/array_test1_tplt.c: Delete. * g++.dg/cilk-plus/AN/array_test2_tplt.c: Delete. * g++.dg/cilk-plus/AN/array_test_ND_tplt.c: Delete. * g++.dg/cilk-plus/AN/braced_list.c: Delete. * g++.dg/cilk-plus/AN/builtin_fn_custom_tplt.c: Delete. * g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.c: Delete. * g++.dg/cilk-plus/AN/fp_triplet_values_tplt.c: Delete. * g++.dg/cilk-plus/AN/postincr_test.c: Delete. * g++.dg/cilk-plus/AN/preincr_test.c: Delete. * g++.dg/cilk-plus/CK/catch_exc.c: Delete. * g++.dg/cilk-plus/CK/cf3.c: Delete. * g++.dg/cilk-plus/CK/cilk-for-tplt.c: Delete. * g++.dg/cilk-plus/CK/const_spawn.c: Delete. * g++.dg/cilk-plus/CK/fib-opr-overload.c: Delete. * g++.dg/cilk-plus/CK/fib-tplt.c: Delete. * g++.dg/cilk-plus/CK/for1.c: Delete. * g++.dg/cilk-plus/CK/lambda_spawns.c: Delete. * g++.dg/cilk-plus/CK/lambda_spawns_tplt.c: Delete. * g++.dg/cilk-plus/CK/pr60586.c: Delete. * g++.dg/cilk-plus/CK/pr66326.c: Delete. * g++.dg/cilk-plus/CK/pr68001.c: Delete. * g++.dg/cilk-plus/CK/pr68997.c: Delete. * g++.dg/cilk-plus/CK/pr69024.c: Delete. * g++.dg/cilk-plus/CK/pr69048.c: Delete. * g++.dg/cilk-plus/CK/pr69267.c: Delete. * g++.dg/cilk-plus/CK/pr80038.c: Delete. * g++.dg/cilk-plus/CK/stl_iter.c: Delete. * g++.dg/cilk-plus/CK/stl_rev_iter.c: Delete. * g++.dg/cilk-plus/CK/stl_test.c: Delete. * g++.dg/cilk-plus/cilk-plus.exp * g++.dg/cilk-plus/ef_test.C: Delete. * g++.dg/cilk-plus/for.C: Delete. * g++.dg/cilk-plus/for2.C: Delete. * g++.dg/cilk-plus/for3.C: Delete. * g++.dg/cilk-plus/for4.C: Delete. * g++.dg/cilk-plus/pr60967.C: Delete. * g++.dg/cilk-plus/pr69028.C: Delete. * g++.dg/cilk-plus/pr70565.C: Delete. * g++.dg/pr57662.C: Delete. * gcc.dg/cilk-plus/cilk-plus.exp * gcc.dg/cilk-plus/for1.c: Delete. * gcc.dg/cilk-plus/for2.c: Delete. * gcc.dg/cilk-plus/jump-openmp.c: Delete. * gcc.dg/cilk-plus/jump.c: Delete. * gcc.dg/cilk-plus/pr69798-1.c: Delete. * gcc.dg/cilk-plus/pr69798-2.c: Delete. * gcc.dg/cilk-plus/pr78306.c: Delete. * gcc.dg/cilk-plus/pr79116.c: Delete. * gcc.dg/graphite/id-28.c: Delete. * lib/cilk-plus-dg.exp: Delete. * lib/target-supports.exp (cilkplus_runtime): Delete. Co-Authored-By: Sebastian Peryt <sebastian.peryt@intel.com> From-SVN: r255195
286 lines
10 KiB
Makefile
286 lines
10 KiB
Makefile
# Top level -*- makefile -*- fragment for GNU C++.
|
||
# Copyright (C) 1994-2017 Free Software Foundation, Inc.
|
||
|
||
#This file is part of GCC.
|
||
|
||
#GCC is free software; you can redistribute it and/or modify
|
||
#it under the terms of the GNU General Public License as published by
|
||
#the Free Software Foundation; either version 3, or (at your option)
|
||
#any later version.
|
||
|
||
#GCC is distributed in the hope that it will be useful,
|
||
#but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
#GNU General Public License for more details.
|
||
|
||
# You should have received a copy of the GNU General Public License
|
||
# along with GCC; see the file COPYING3. If not see
|
||
# <http://www.gnu.org/licenses/>.
|
||
|
||
# This file provides the language dependent support in the main Makefile.
|
||
# Each language makefile fragment must provide the following targets:
|
||
#
|
||
# foo.all.cross, foo.start.encap, foo.rest.encap,
|
||
# foo.install-common, foo.install-man, foo.install-info, foo.install-pdf,
|
||
# foo.install-html, foo.info, foo.dvi, foo.pdf, foo.html, foo.uninstall,
|
||
# foo.mostlyclean, foo.clean, foo.distclean,
|
||
# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
|
||
#
|
||
# where `foo' is the name of the language.
|
||
#
|
||
# It should also provide rules for:
|
||
#
|
||
# - making any compiler driver (eg: g++)
|
||
# - the compiler proper (eg: cc1plus)
|
||
# - define the names for selecting the language in LANGUAGES.
|
||
|
||
# Actual names to use when installing a native compiler.
|
||
CXX_INSTALL_NAME := $(shell echo c++|sed '$(program_transform_name)')
|
||
GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)')
|
||
CXX_TARGET_INSTALL_NAME := $(target_noncanonical)-$(shell echo c++|sed '$(program_transform_name)')
|
||
GXX_TARGET_INSTALL_NAME := $(target_noncanonical)-$(shell echo g++|sed '$(program_transform_name)')
|
||
CP_PLUGIN_HEADERS := cp-tree.h cxx-pretty-print.h name-lookup.h type-utils.h operators.def
|
||
|
||
#
|
||
# Define the names for selecting c++ in LANGUAGES.
|
||
# Note that it would be nice to move the dependency on g++
|
||
# into the C++ rule, but that needs a little bit of work
|
||
# to do the right thing within all.cross.
|
||
c++: cc1plus$(exeext)
|
||
|
||
# Tell GNU make to ignore these if they exist.
|
||
.PHONY: c++
|
||
|
||
CFLAGS-cp/g++spec.o += $(DRIVER_DEFINES)
|
||
|
||
# Create the compiler driver for g++.
|
||
GXX_OBJS = $(GCC_OBJS) cp/g++spec.o
|
||
xg++$(exeext): $(GXX_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBDEPS)
|
||
+$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
|
||
$(GXX_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a \
|
||
$(EXTRA_GCC_LIBS) $(LIBS)
|
||
|
||
# Create a version of the g++ driver which calls the cross-compiler.
|
||
g++-cross$(exeext): xg++$(exeext)
|
||
-rm -f g++-cross$(exeext)
|
||
cp xg++$(exeext) g++-cross$(exeext)
|
||
|
||
# The compiler itself.
|
||
# Shared with C front end:
|
||
CXX_C_OBJS = attribs.o incpath.o \
|
||
$(C_COMMON_OBJS) $(CXX_TARGET_OBJS)
|
||
|
||
# Language-specific object files for C++ and Objective C++.
|
||
CXX_AND_OBJCXX_OBJS = \
|
||
cp/call.o cp/class.o cp/constexpr.o cp/constraint.o \
|
||
cp/cp-gimplify.o \
|
||
cp/cp-objcp-common.o cp/cp-ubsan.o \
|
||
cp/cvt.o cp/cxx-pretty-print.o \
|
||
cp/decl.o cp/decl2.o cp/dump.o \
|
||
cp/error.o cp/except.o cp/expr.o \
|
||
cp/friend.o cp/init.o \
|
||
cp/lambda.o cp/lex.o cp/logic.o \
|
||
cp/mangle.o cp/method.o \
|
||
cp/name-lookup.o cp/optimize.o \
|
||
cp/parser.o cp/pt.o cp/ptree.o \
|
||
cp/repo.o cp/rtti.o \
|
||
cp/search.o cp/semantics.o \
|
||
cp/tree.o cp/typeck.o cp/typeck2.o \
|
||
cp/vtable-class-hierarchy.o $(CXX_C_OBJS)
|
||
|
||
ifeq ($(if $(wildcard ../stage_current),$(shell cat \
|
||
../stage_current)),stageautofeedback)
|
||
$(CXX_AND_OBJCXX_OBJS): CFLAGS += -fauto-profile=cc1plus.fda
|
||
$(CXX_AND_OBJCXX_OBJS): cc1plus.fda
|
||
endif
|
||
|
||
# Language-specific object files for C++.
|
||
CXX_OBJS = cp/cp-lang.o c-family/stub-objc.o $(CXX_AND_OBJCXX_OBJS)
|
||
|
||
c++_OBJS = $(CXX_OBJS) cc1plus-checksum.o cp/g++spec.o
|
||
|
||
# Use strict warnings for this front end.
|
||
cp-warn = $(STRICT_WARN)
|
||
|
||
# compute checksum over all object files and the options
|
||
# re-use the checksum from the prev-final stage so it passes
|
||
# the bootstrap comparison and allows comparing of the cc1 binary
|
||
cc1plus-checksum.c : build/genchecksum$(build_exeext) checksum-options \
|
||
$(CXX_OBJS) $(BACKEND) $(LIBDEPS)
|
||
if [ -f ../stage_final ] \
|
||
&& cmp -s ../stage_current ../stage_final; then \
|
||
cp ../prev-gcc/cc1plus-checksum.c cc1plus-checksum.c; \
|
||
else \
|
||
build/genchecksum$(build_exeext) $(CXX_OBJS) $(BACKEND) $(LIBDEPS) \
|
||
checksum-options > cc1plus-checksum.c.tmp && \
|
||
$(srcdir)/../move-if-change cc1plus-checksum.c.tmp cc1plus-checksum.c; \
|
||
fi
|
||
|
||
cc1plus$(exeext): $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBDEPS)
|
||
+$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
|
||
$(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
|
||
|
||
ifeq ($(ENABLE_MAINTAINER_RULES), true)
|
||
# Special build rule. This is a maintainer rule, that is only
|
||
# available when GCC is configured with --enable-maintainer-mode. In
|
||
# other cases, it is not available to avoid triggering rebuilds if a
|
||
# user has the source checked out with unusual timestamps.
|
||
$(srcdir)/cp/cfns.h: $(srcdir)/cp/cfns.gperf
|
||
else
|
||
# We keep the rule so that you can still force a rebuild, even if you
|
||
# didn't configure GCC with --enable-maintainer-mode, by manually
|
||
# deleting the $(srcdir)/cp/cfns.h file.
|
||
$(srcdir)/cp/cfns.h:
|
||
endif
|
||
gperf -o -C -E -k '1-6,$$' -j1 -D -N 'libc_name_p' -L C++ \
|
||
$(srcdir)/cp/cfns.gperf --output-file $(srcdir)/cp/cfns.h
|
||
|
||
cc1plus.fda: ../stage1-gcc/cc1plus$(exeext) ../prev-gcc/$(PERF_DATA)
|
||
$(CREATE_GCOV) -binary ../stage1-gcc/cc1plus$(exeext) -gcov cc1plus.fda -profile ../prev-gcc/$(PERF_DATA) -gcov_version 1
|
||
|
||
#
|
||
# Build hooks:
|
||
|
||
c++.all.cross: g++-cross$(exeext)
|
||
c++.start.encap: xg++$(exeext)
|
||
c++.rest.encap:
|
||
c++.info:
|
||
c++.install-info:
|
||
c++.dvi:
|
||
c++.pdf:
|
||
c++.install-pdf:
|
||
c++.install-html:
|
||
c++.html:
|
||
c++.srcinfo:
|
||
c++.srcextra:
|
||
|
||
c++.tags: force
|
||
cd $(srcdir)/cp; etags -o TAGS.sub *.c *.cc *.h --language=none \
|
||
--regex='/DEFTREECODE [(]\([A-Z_]+\)/\1/' cp-tree.def; \
|
||
etags --include TAGS.sub --include ../TAGS.sub
|
||
|
||
c++.man: doc/g++.1
|
||
|
||
c++.srcman: doc/g++.1
|
||
-cp -p $^ $(srcdir)/doc
|
||
|
||
# 'make check' in gcc/ looks for check-c++, as do all toplevel C++-related
|
||
# check targets. However, our DejaGNU framework requires 'check-g++' as its
|
||
# entry point. We feed the former to the latter here.
|
||
check-c++ : check-g++
|
||
|
||
# Run the testsuite in C++17 mode.
|
||
check-c++1z: check-c++17
|
||
check-c++17:
|
||
$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS)" GXX_TESTSUITE_STDS=17 check-g++
|
||
|
||
# Run the testsuite in all standard conformance levels.
|
||
check-c++-all:
|
||
$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) --stds=98,11,14,17,2a,concepts" check-g++
|
||
|
||
# Run the testsuite with garbage collection at every opportunity.
|
||
check-g++-strict-gc:
|
||
$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) --extra_opts,--param,ggc-min-heapsize=0,--param,ggc-min-expand=0" \
|
||
TESTSUITEDIR="$(TESTSUITEDIR).gc" check-g++
|
||
check-c++-subtargets : check-g++-subtargets
|
||
# List of targets that can use the generic check- rule and its // variant.
|
||
lang_checks += check-g++
|
||
lang_checks_parallelized += check-g++
|
||
# For description see the check_$lang_parallelize comment in gcc/Makefile.in.
|
||
check_g++_parallelize = 10000
|
||
#
|
||
# Install hooks:
|
||
# cc1plus is installed elsewhere as part of $(COMPILERS).
|
||
|
||
# Install the driver program as $(target)-g++ and $(target)-c++, and
|
||
# also as g++ and c++ if native.
|
||
c++.install-common: installdirs
|
||
-if test "$(enable_as_accelerator)" != "yes" ; then \
|
||
rm -f $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext); \
|
||
$(INSTALL_PROGRAM) xg++$(exeext) $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext); \
|
||
chmod a+x $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext); \
|
||
rm -f $(DESTDIR)$(bindir)/$(CXX_INSTALL_NAME)$(exeext); \
|
||
( cd $(DESTDIR)$(bindir) && \
|
||
$(LN) $(GXX_INSTALL_NAME)$(exeext) $(CXX_INSTALL_NAME)$(exeext) ); \
|
||
if [ -f cc1plus$(exeext) ] ; then \
|
||
if [ ! -f g++-cross$(exeext) ] ; then \
|
||
rm -f $(DESTDIR)$(bindir)/$(GXX_TARGET_INSTALL_NAME)$(exeext); \
|
||
( cd $(DESTDIR)$(bindir) && \
|
||
$(LN) $(GXX_INSTALL_NAME)$(exeext) $(GXX_TARGET_INSTALL_NAME)$(exeext) ); \
|
||
rm -f $(DESTDIR)$(bindir)/$(CXX_TARGET_INSTALL_NAME)$(exeext); \
|
||
( cd $(DESTDIR)$(bindir) && \
|
||
$(LN) $(CXX_INSTALL_NAME)$(exeext) $(CXX_TARGET_INSTALL_NAME)$(exeext) ); \
|
||
fi ; \
|
||
fi; \
|
||
fi
|
||
|
||
# We can't use links because not everyone supports them. So just copy the
|
||
# manpage.
|
||
doc/g++.1: doc/gcc.1
|
||
cp $< doc/g++.1
|
||
|
||
c++.install-man: $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext)
|
||
|
||
$(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext): doc/g++.1 installdirs
|
||
-rm -f $@
|
||
-$(INSTALL_DATA) $< $@
|
||
-chmod a-x $@
|
||
|
||
c++.install-plugin: installdirs
|
||
# We keep the directory structure for files in config and .def files. All
|
||
# other files are flattened to a single directory.
|
||
headers="$(CP_PLUGIN_HEADERS)"; \
|
||
for file in $$headers; do \
|
||
path=$(srcdir)/cp/$$file; \
|
||
dest=$(plugin_includedir)/cp/$$file; \
|
||
echo $(INSTALL_DATA) $$path $(DESTDIR)$$dest; \
|
||
dir=`dirname $$dest`; \
|
||
$(mkinstalldirs) $(DESTDIR)$$dir; \
|
||
$(INSTALL_DATA) $$path $(DESTDIR)$$dest; \
|
||
done
|
||
# Install import library.
|
||
ifeq ($(plugin_implib),yes)
|
||
$(mkinstalldirs) $(DESTDIR)$(plugin_resourcesdir)
|
||
$(INSTALL_DATA) cc1plus$(exeext).a $(DESTDIR)/$(plugin_resourcesdir)/cc1plus$(exeext).a
|
||
endif
|
||
|
||
c++.uninstall:
|
||
-rm -rf $(DESTDIR)$(bindir)/$(CXX_INSTALL_NAME)$(exeext)
|
||
-rm -rf $(DESTDIR)$(bindir)/$(GXX_INSTALL_NAME)$(exeext)
|
||
-rm -rf $(DESTDIR)$(man1dir)/$(GXX_INSTALL_NAME)$(man1ext)
|
||
#
|
||
# Clean hooks:
|
||
# A lot of the ancillary files are deleted by the main makefile.
|
||
# We just have to delete files specific to us.
|
||
|
||
c++.mostlyclean:
|
||
-rm -f doc/g++.1
|
||
-rm -f cp/*$(objext)
|
||
-rm -f cp/*$(coverageexts)
|
||
-rm -f xg++$(exeext) g++-cross$(exeext) cc1plus$(exeext) cc1plus.fda
|
||
c++.clean:
|
||
c++.distclean:
|
||
-rm -f cp/config.status cp/Makefile
|
||
-rm -f cxxmain.c
|
||
c++.maintainer-clean:
|
||
#
|
||
# Stage hooks:
|
||
# The main makefile has already created stage?/cp.
|
||
|
||
c++.stage1: stage1-start
|
||
-mv cp/*$(objext) stage1/cp
|
||
c++.stage2: stage2-start
|
||
-mv cp/*$(objext) stage2/cp
|
||
c++.stage3: stage3-start
|
||
-mv cp/*$(objext) stage3/cp
|
||
c++.stage4: stage4-start
|
||
-mv cp/*$(objext) stage4/cp
|
||
c++.stageprofile: stageprofile-start
|
||
-mv cp/*$(objext) stageprofile/cp
|
||
c++.stagefeedback: stagefeedback-start
|
||
-mv cp/*$(objext) stagefeedback/cp
|
||
c++.autostageprofile: stageprofile-start
|
||
-mv cp/*$(objext) autostageprofile/cp
|
||
c++.autostagefeedback: stagefeedback-start
|
||
-mv cp/*$(objext) autostagefeedback/cp
|