#----------------------------------------------------------------------------- INCLUDE("${GCCCONFIG_SOURCE_DIR}/gcc_make_config_h.cmake") INCLUDE_DIRECTORIES(BEFORE ${GCC_SOURCE_DIR}/include ${GCC_SOURCE_DIR}/libcpp/include ${GCC_SOURCE_DIR}/libdecnumber ${GCC_SOURCE_DIR}/gcc ${GCC_SOURCE_DIR}/gcc/config ${GCC_BINARY_DIR}/gcc) ADD_DEFINITIONS(-DIN_GCC -DHAVE_CONFIG_H) INCLUDE_REGULAR_EXPRESSION("^([^ri]|i[^n]|in[^s]|ins[^n]|insn[^-]|r[^t]|rt[^l]|rtl[^.])") SUBDIRS(cp) IF(WIN32) SET(GCC_EXE_EXT ".exe") ELSE(WIN32) SET(GCC_EXE_EXT) ENDIF(WIN32) IF(EXECUTABLE_OUTPUT_PATH) SET(GCC_GEN_DIR ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}) ELSE(EXECUTABLE_OUTPUT_PATH) SET(GCC_GEN_DIR ${GCC_BINARY_DIR}/gcc/${CMAKE_CFG_INTDIR}) ENDIF(EXECUTABLE_OUTPUT_PATH) #----------------------------------------------------------------------------- # Load the platform configuration. IF(EXISTS "${GCCCONFIG_BINARY_DIR}/gcc_platform.cmake") INCLUDE("${GCCCONFIG_BINARY_DIR}/gcc_platform.cmake") ELSE(EXISTS "${GCCCONFIG_BINARY_DIR}/gcc_platform.cmake") MESSAGE(FATAL_ERROR "Cannot find gcc_platform.cmake.") ENDIF(EXISTS "${GCCCONFIG_BINARY_DIR}/gcc_platform.cmake") # Default the target-machine variables that were not explicitly set. IF(NOT tm_file) SET(tm_file ${cpu_type}/${cpu_type}.h) ENDIF(NOT tm_file) IF(NOT md_file) SET(md_file ${cpu_type}/${cpu_type}.md) ENDIF(NOT md_file) IF(NOT out_file) SET(out_file ${cpu_type}/${cpu_type}.c) ENDIF(NOT out_file) SET(build_auto auto-host.h) # or auto-build.h for cross compiling? SET(tm_file ${tm_file} defaults.h) SET(tm_p_file ${tm_p_file} tm-preds.h) SET(host_xm_file auto-host.h ansidecl.h ${host_xm_file}) SET(build_xm_file ${build_auto} ansidecl.h ${build_xm_file}) SET(xm_file auto-host.h ansidecl.h ${xm_file}) # Build file and include lists. FOREACH(m host_ build_ "") SET(${m}xm_include_list) SET(${m}xm_file_list) FOREACH(f ${${m}xm_file}) IF("${f}" MATCHES "^ansidecl\\.h") LIST(APPEND ${m}xm_include_list ${f}) LIST(APPEND ${m}xm_file_list ${GCC_SOURCE_DIR}/include/${f}) ELSEIF("${f}" MATCHES "^auto-(build|host)\\.h$") LIST(APPEND ${m}xm_include_list ${f}) LIST(APPEND ${m}xm_file_list ${GCC_BINARY_DIR}/gcc/${f}) ELSE("${f}" MATCHES "^ansidecl\\.h") LIST(APPEND ${m}xm_include_list config/${f}) LIST(APPEND ${m}xm_file_list ${GCC_SOURCE_DIR}/gcc/config/${f}) ENDIF("${f}" MATCHES "^ansidecl\\.h") ENDFOREACH(f) ENDFOREACH(m) SET(tm_include_list options.h) SET(tm_file_list) FOREACH(f ${tm_file}) IF("${f}" MATCHES "^defaults\\.h$") LIST(APPEND tm_include_list ${f}) LIST(APPEND tm_file_list ${GCC_SOURCE_DIR}/gcc/${f}) ELSE("${f}" MATCHES "^defaults\\.h$") LIST(APPEND tm_include_list config/${f}) LIST(APPEND tm_file_list ${GCC_SOURCE_DIR}/gcc/config/${f}) ENDIF("${f}" MATCHES "^defaults\\.h$") ENDFOREACH(f) SET(tm_p_include_list) SET(tm_p_file_list) FOREACH(f ${tm_p_file}) IF("${f}" MATCHES "^tm-preds\\.h$") LIST(APPEND tm_p_include_list ${f}) LIST(APPEND tm_p_file_list ${GCC_SOURCE_DIR}/gcc/${f}) ELSE("${f}" MATCHES "^tm-preds\\.h$") LIST(APPEND tm_p_include_list config/${f}) LIST(APPEND tm_p_file_list ${GCC_SOURCE_DIR}/gcc/config/${f}) ENDIF("${f}" MATCHES "^tm-preds\\.h$") ENDFOREACH(f) # Find the platform-specific sources. MACRO(FIND_EXTRA_SRCS objs var) STRING(REGEX REPLACE "\\.o" ".c" EXTRA_SRCS "${objs}") FOREACH(f ${EXTRA_SRCS}) IF(EXISTS ${GCC_SOURCE_DIR}/gcc/config/${f}) SET(${var} ${${var}} ${GCC_SOURCE_DIR}/gcc/config/${f}) ELSE(EXISTS ${GCC_SOURCE_DIR}/gcc/config/${f}) IF(EXISTS ${GCC_SOURCE_DIR}/gcc/config/${cpu_type}/${f}) SET(${var} ${${var}} ${GCC_SOURCE_DIR}/gcc/config/${cpu_type}/${f}) ELSE(EXISTS ${GCC_SOURCE_DIR}/gcc/config/${cpu_type}/${f}) IF(EXISTS ${GCC_SOURCE_DIR}/gcc/${f}) SET(${var} ${${var}} ${GCC_SOURCE_DIR}/gcc/${f}) ELSE(EXISTS ${GCC_SOURCE_DIR}/gcc/${f}) MESSAGE(SEND_ERROR "Cannot find platform-specific source ${f}.") ENDIF(EXISTS ${GCC_SOURCE_DIR}/gcc/${f}) ENDIF(EXISTS ${GCC_SOURCE_DIR}/gcc/config/${cpu_type}/${f}) ENDIF(EXISTS ${GCC_SOURCE_DIR}/gcc/config/${f}) ENDFOREACH(f) ENDMACRO(FIND_EXTRA_SRCS) FIND_EXTRA_SRCS("${extra_objs}" extra_srcs) FIND_EXTRA_SRCS("${c_target_objs}" c_target_srcs) FIND_EXTRA_SRCS("${cxx_target_objs}" cxx_target_srcs) FIND_EXTRA_SRCS("${out_host_hook_obj}" host_hook_srcs) SET(MD_FILE ${GCC_SOURCE_DIR}/gcc/config/${md_file}) #----------------------------------------------------------------------------- # Generate configuration header files. GCC_MAKE_CONFIG_H(bconfig.h GCC_BCONFIG_H "${build_xm_defines}" "${build_xm_include_list}" "${target_cpu_default}") GCC_MAKE_CONFIG_H(config.h GCC_CONFIG_H "${host_xm_defines}" "${host_xm_include_list}" "${target_cpu_default}") GCC_MAKE_CONFIG_H(tconfig.h GCC_TCONFIG_H "USED_FOR_TARGET;${xm_defines}" "${xm_include_list}" "${target_cpu_default}") GCC_MAKE_CONFIG_H(tm_p.h GCC_TM_P_H "" "${tm_p_include_list}" "${target_cpu_default}") GCC_MAKE_CONFIG_H(tm.h GCC_TM_H "${tm_defines}" "${tm_include_list}" "${target_cpu_default}") #----------------------------------------------------------------------------- # Rules to generate options.h and options.c SET(ALL_OPT_FILES ${GCC_SOURCE_DIR}/gcc/c.opt ${GCC_SOURCE_DIR}/gcc/common.opt ) FOREACH(f ${extra_options}) LIST(APPEND ALL_OPT_FILES ${GCC_SOURCE_DIR}/gcc/config/${f}) ENDFOREACH(f) # Find an awk tool. IF(WIN32 AND NOT CYGWIN) SET(AWK_EXECUTABLE "${GCC_SOURCE_DIR}/config_cmake/nawk.exe") ELSE(WIN32 AND NOT CYGWIN) # Prefer GNU awk at any location over the native awk if possible. # The native awk on opensolaris causes opt-gather.awk to sort incorrectly. FIND_PROGRAM(AWK_EXECUTABLE NAMES gawk) FIND_PROGRAM(AWK_EXECUTABLE NAMES awk) MARK_AS_ADVANCED(AWK_EXECUTABLE) ENDIF(WIN32 AND NOT CYGWIN) ADD_CUSTOM_COMMAND(OUTPUT ${GCC_BINARY_DIR}/gcc/optionlist COMMAND ${AWK_EXECUTABLE} -f ${GCC_SOURCE_DIR}/gcc/opt-gather.awk ${ALL_OPT_FILES} > optionlist DEPENDS ${GCC_SOURCE_DIR}/gcc/opt-gather.awk ${ALL_OPT_FILES} ) ADD_CUSTOM_COMMAND(OUTPUT ${GCC_BINARY_DIR}/gcc/options.h COMMAND ${AWK_EXECUTABLE} -f ${GCC_SOURCE_DIR}/gcc/opt-functions.awk -f ${GCC_SOURCE_DIR}/gcc/opth-gen.awk < optionlist > options.h DEPENDS ${GCC_SOURCE_DIR}/gcc/opt-functions.awk ${GCC_SOURCE_DIR}/gcc/opth-gen.awk ${GCC_BINARY_DIR}/gcc/optionlist ) ADD_CUSTOM_COMMAND(OUTPUT ${GCC_BINARY_DIR}/gcc/options.c COMMAND ${AWK_EXECUTABLE} -f ${GCC_SOURCE_DIR}/gcc/opt-functions.awk -f ${GCC_SOURCE_DIR}/gcc/optc-gen.awk -v "header_name=config.h system.h coretypes.h tm.h" < optionlist > options.c DEPENDS ${GCC_SOURCE_DIR}/gcc/opt-functions.awk ${GCC_SOURCE_DIR}/gcc/optc-gen.awk ${GCC_BINARY_DIR}/gcc/optionlist ) ADD_CUSTOM_TARGET(genoptions ALL DEPENDS ${GCC_BINARY_DIR}/gcc/options.h ${GCC_BINARY_DIR}/gcc/options.c ) #----------------------------------------------------------------------------- # Rules to generate insn-modes.h, insn-modes.c, and min-insn-modes.c ADD_EXECUTABLE(genmodes genmodes.c errors.c) ADD_DEPENDENCIES(genmodes genoptions) TARGET_LINK_LIBRARIES(genmodes iberty) SET_TARGET_PROPERTIES(genmodes PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_genmodes_EXE "${GCC_GEN_DIR}/genmodes${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND(OUTPUT ${GCC_BINARY_DIR}/gcc/insn-modes.h COMMAND ${GCC_genmodes_EXE} -h > insn-modes.h DEPENDS genmodes ) ADD_CUSTOM_COMMAND(OUTPUT ${GCC_BINARY_DIR}/gcc/insn-modes.c COMMAND ${GCC_genmodes_EXE} > insn-modes.c DEPENDS genmodes ) ADD_CUSTOM_COMMAND(OUTPUT ${GCC_BINARY_DIR}/gcc/min-insn-modes.c COMMAND ${GCC_genmodes_EXE} -m > min-insn-modes.c DEPENDS genmodes ) #----------------------------------------------------------------------------- # Rules to generate genrtl.h and genrtl.c. ADD_EXECUTABLE(gengenrtl gengenrtl.c errors.c) ADD_DEPENDENCIES(gengenrtl genoptions) TARGET_LINK_LIBRARIES(gengenrtl iberty) SET_TARGET_PROPERTIES(gengenrtl PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_gengenrtl_EXE "${GCC_GEN_DIR}/gengenrtl${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/genrtl.c COMMAND ${GCC_gengenrtl_EXE} > genrtl.c DEPENDS gengenrtl ) ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/genrtl.h COMMAND ${GCC_gengenrtl_EXE} -h > genrtl.h DEPENDS gengenrtl ) #----------------------------------------------------------------------------- # Generate gtyp-gen.h. SET(GTFILES_C c-lang.c c-tree.h c-decl.c c-common.c c-common.h c-pragma.c c-objc-common.c c-parser.c ) SET(GTFILES_CXX cp/rtti.c cp/mangle.c cp/name-lookup.h cp/name-lookup.c cp/cp-tree.h cp/decl.h cp/call.c cp/decl.c cp/decl2.c cp/pt.c cp/repo.c cp/semantics.c cp/tree.c cp/parser.c cp/method.c cp/typeck2.c c-common.c c-common.h c-lex.c c-pragma.c cp/class.c cp/cp-objcp-common.c ) SET(GTFILES # input.h coretypes.h # these files are listed in order below # bitmap.h coverage.c rtl.h optabs.h tree.h function.h libfuncs.h real.h varray.h insn-addr.h hwint.h ipa-reference.h output.h cselib.h basic-block.h cgraph.h c-common.h c-tree.h reload.h alias.c bitmap.c cselib.c cgraph.c ipa-prop.c ipa-cp.c ipa-inline.c dbxout.c dwarf2out.c dwarf2asm.c dojump.c tree-profile.c emit-rtl.c except.c explow.c expr.c function.c except.h gcse.c integrate.c lists.c optabs.c profile.c regclass.c reg-stack.c cfglayout.c sdbout.c stor-layout.c stringpool.c tree.c varasm.c tree-mudflap.c tree-flow.h c-objc-common.c c-common.c c-parser.c tree-ssanames.c tree-eh.c tree-ssa-address.c tree-phinodes.c tree-cfg.c tree-dfa.c tree-ssa-propagate.c tree-iterator.c gimplify.c tree-chrec.h tree-vect-generic.c tree-ssa-operands.h tree-ssa-operands.c tree-profile.c tree-nested.c ipa-reference.c tree-ssa-structalias.h tree-ssa-structalias.c c-pragma.h omp-low.c targhooks.c cgraphunit.c ) SET(GTYP_GEN_LANG_FILES) SET(GTYP_GEN_LANGS_FOR_LANG_FILES) SET(GTYP_GEN_ALL_FILES) FOREACH(f ${GCC_SOURCE_DIR}/gcc/input.h ${GCC_SOURCE_DIR}/gcc/coretypes.h ${GCC_SOURCE_DIR}/libcpp/include/line-map.h ${GCC_SOURCE_DIR}/libcpp/include/cpplib.h ${GCC_SOURCE_DIR}/libcpp/include/cpp-id-data.h ${host_xm_file_list} ${tm_file_list} ${GCC_BINARY_DIR}/gcc/options.h ${GCC_SOURCE_DIR}/include/hashtab.h ${GCC_SOURCE_DIR}/include/splay-tree.h ${GCC_SOURCE_DIR}/gcc/bitmap.h ${GCC_SOURCE_DIR}/gcc/coverage.c ${GCC_SOURCE_DIR}/gcc/rtl.h ${GCC_SOURCE_DIR}/gcc/optabs.h ${GCC_SOURCE_DIR}/gcc/tree.h ${GCC_SOURCE_DIR}/gcc/function.h ${GCC_SOURCE_DIR}/gcc/libfuncs.h ${GCC_SOURCE_DIR}/libcpp/include/symtab.h ${GCC_SOURCE_DIR}/gcc/config/${out_file} ) SET(GTYP_GEN_ALL_FILES "${GTYP_GEN_ALL_FILES}\"${f}\",\n") ENDFOREACH(f) FOREACH(f ${GTFILES}) SET(GTYP_GEN_ALL_FILES "${GTYP_GEN_ALL_FILES}\"${GCC_SOURCE_DIR}/gcc/${f}\",\n") ENDFOREACH(f) FOREACH(f ${GTFILES_CXX}) SET(GTYP_GEN_ALL_FILES "${GTYP_GEN_ALL_FILES}\"${GCC_SOURCE_DIR}/gcc/${f}\",\n") SET(GTYP_GEN_LANG_FILES "${GTYP_GEN_LANG_FILES}\"${GCC_SOURCE_DIR}/gcc/${f}\",\n") SET(GTYP_GEN_LANGS_FOR_LANG_FILES "${GTYP_GEN_LANGS_FOR_LANG_FILES}\"cp\",\n") ENDFOREACH(f) FOREACH(f ${GTFILES_C}) SET(GTYP_GEN_ALL_FILES "${GTYP_GEN_ALL_FILES}\"${GCC_SOURCE_DIR}/gcc/${f}\",\n") SET(GTYP_GEN_LANG_FILES "${GTYP_GEN_LANG_FILES}\"${GCC_SOURCE_DIR}/gcc/${f}\",\n") SET(GTYP_GEN_LANGS_FOR_LANG_FILES "${GTYP_GEN_LANGS_FOR_LANG_FILES}\"c\",\n") ENDFOREACH(f) FOREACH(f ${extra_srcs}) SET(GTYP_GEN_ALL_FILES "${GTYP_GEN_ALL_FILES}\"${f}\",\n") ENDFOREACH(f) CONFIGURE_FILE(${GCCCONFIG_SOURCE_DIR}/gtyp-gen.h.in ${GCC_BINARY_DIR}/gcc/gtyp-gen.h @ONLY IMMEDIATE) #----------------------------------------------------------------------------- # Rules to generate gtype-desc.h and gtype-desc.c. ADD_EXECUTABLE(gengtype gengtype.c gengtype-lex.c gengtype-yacc.c errors.c ) ADD_DEPENDENCIES(gengtype genoptions) TARGET_LINK_LIBRARIES(gengtype iberty) SET_TARGET_PROPERTIES(gengtype PROPERTIES COMPILE_FLAGS "-DGENERATOR_FILE -DYY_NO_UNISTD_H") SET(GCC_gengtype_EXE "${GCC_GEN_DIR}/gengtype${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/gtype-desc.c ${GCC_BINARY_DIR}/gcc/gtype-desc.h COMMAND ${GCC_gengtype_EXE} DEPENDS gengtype ) #----------------------------------------------------------------------------- # Rules to generate tree-check.h. ADD_EXECUTABLE(gencheck gencheck.c) ADD_DEPENDENCIES(gencheck genoptions) TARGET_LINK_LIBRARIES(gencheck iberty) SET_TARGET_PROPERTIES(gencheck PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_gencheck_EXE "${GCC_GEN_DIR}/gencheck${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/tree-check.h COMMAND ${GCC_gencheck_EXE} > tree-check.h DEPENDS gencheck ) #----------------------------------------------------------------------------- # Sources used in several generator executables. ADD_LIBRARY(gen rtl.c read-rtl.c ggc-none.c vec.c gensupport.c print-rtl.c errors.c ${GCC_BINARY_DIR}/gcc/min-insn-modes.c ${GCC_BINARY_DIR}/gcc/insn-modes.h ${GCC_BINARY_DIR}/gcc/tree-check.h ${GCC_BINARY_DIR}/gcc/gtype-desc.h ) ADD_DEPENDENCIES(gen genoptions) TARGET_LINK_LIBRARIES(gen iberty) SET_TARGET_PROPERTIES(gen PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) #----------------------------------------------------------------------------- # Rules to generate insn-constants.h. ADD_EXECUTABLE(genconstants genconstants.c) TARGET_LINK_LIBRARIES(genconstants gen) SET_TARGET_PROPERTIES(genconstants PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_genconstants_EXE "${GCC_GEN_DIR}/genconstants${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/insn-constants.h COMMAND ${GCC_genconstants_EXE} ${MD_FILE} > insn-constants.h DEPENDS genconstants ${MD_FILE} ) #----------------------------------------------------------------------------- # Rules to generate tm-preds.h, tm-constrs.h, and insn-preds.c. ADD_EXECUTABLE(genpreds genpreds.c) TARGET_LINK_LIBRARIES(genpreds gen) SET_TARGET_PROPERTIES(genpreds PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_genpreds_EXE "${GCC_GEN_DIR}/genpreds${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/tm-preds.h COMMAND ${GCC_genpreds_EXE} -h ${MD_FILE} > tm-preds.h DEPENDS genpreds ${MD_FILE} ) ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/tm-constrs.h COMMAND ${GCC_genpreds_EXE} -c ${MD_FILE} > tm-constrs.h DEPENDS genpreds ${MD_FILE} ) ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/insn-preds.c COMMAND ${GCC_genpreds_EXE} ${MD_FILE} > insn-preds.c DEPENDS genpreds ${MD_FILE} ) #----------------------------------------------------------------------------- # Rules to generate gencondmd.c. ADD_EXECUTABLE(genconditions genconditions.c) TARGET_LINK_LIBRARIES(genconditions gen) SET_TARGET_PROPERTIES(genconditions PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_genconditions_EXE "${GCC_GEN_DIR}/genconditions${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/gencondmd.c COMMAND ${GCC_genconditions_EXE} ${MD_FILE} > gencondmd.c DEPENDS genconditions ${MD_FILE} ) #----------------------------------------------------------------------------- # Rules to generate insn-conditions.md. SET(MD_COND ${GCC_BINARY_DIR}/gcc/insn-conditions.md) ADD_EXECUTABLE(gencondmd ${GCC_BINARY_DIR}/gcc/gencondmd.c ${GCC_BINARY_DIR}/gcc/insn-constants.h ${GCC_BINARY_DIR}/gcc/tm-preds.h ${GCC_BINARY_DIR}/gcc/tm-constrs.h ) TARGET_LINK_LIBRARIES(gencondmd gen) SET_TARGET_PROPERTIES(gencondmd PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_gencondmd_EXE "${GCC_GEN_DIR}/gencondmd${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${MD_COND} COMMAND ${GCC_gencondmd_EXE} > ${MD_COND} DEPENDS gencondmd ) #----------------------------------------------------------------------------- # Rules to generate insn-config.h, insn-codes.h, insn-attr.h, and insn-flags.h. FOREACH(tgt config codes attr flags) ADD_EXECUTABLE(gen${tgt} gen${tgt}.c) TARGET_LINK_LIBRARIES(gen${tgt} gen) SET_TARGET_PROPERTIES(gen${tgt} PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_gen${tgt}_EXE "${GCC_GEN_DIR}/gen${tgt}${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/insn-${tgt}.h COMMAND ${GCC_gen${tgt}_EXE} ${MD_FILE} ${MD_COND} > insn-${tgt}.h DEPENDS gen${tgt} ${MD_FILE} ${MD_COND} ) ENDFOREACH(tgt) #----------------------------------------------------------------------------- # Rules to generate insn-emit.c, insn-extract.c, insn-opinit.c, # insn-peep.c, insn-output.c, insn-recog.c, insn-attrtab.c, and # insn-automata.c. SET(genautomata_EXTRA_LIBS m) IF(WIN32) IF(NOT MINGW) SET(genautomata_EXTRA_LIBS) ENDIF(NOT MINGW) ENDIF(WIN32) FOREACH(tgt emit extract opinit peep output recog attrtab automata) ADD_EXECUTABLE(gen${tgt} gen${tgt}.c) TARGET_LINK_LIBRARIES(gen${tgt} gen ${gen${tgt}_EXTRA_LIBS}) SET_TARGET_PROPERTIES(gen${tgt} PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_gen${tgt}_EXE "${GCC_GEN_DIR}/gen${tgt}${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/insn-${tgt}.c COMMAND ${GCC_gen${tgt}_EXE} ${MD_FILE} ${MD_COND} > insn-${tgt}.c DEPENDS gen${tgt} ${MD_FILE} ${MD_COND} ) ENDFOREACH(tgt) #----------------------------------------------------------------------------- # Rules to generate gcov-iov.h. ADD_EXECUTABLE(gcov_iov gcov-iov.c) SET_TARGET_PROPERTIES(gcov_iov PROPERTIES COMPILE_FLAGS -DGENERATOR_FILE) SET(GCC_gcov_iov_EXE "${GCC_GEN_DIR}/gcov_iov${GCC_EXE_EXT}") ADD_CUSTOM_COMMAND( OUTPUT ${GCC_BINARY_DIR}/gcc/gcov-iov.h COMMAND ${GCC_gcov_iov_EXE} '4.2.1' '' > gcov-iov.h DEPENDS gcov_iov ) #----------------------------------------------------------------------------- # Special flags for some source files. SET_SOURCE_FILES_PROPERTIES(toplev.c PROPERTIES COMPILE_FLAGS "-DTARGET_NAME=${target}") #----------------------------------------------------------------------------- # Compiler backend library. ADD_LIBRARY(backend double-int.c tree-chrec.c tree-scalar-evolution.c tree-data-ref.c tree-cfg.c tree-dfa.c tree-eh.c tree-ssa.c tree-optimize.c tree-gimple.c gimplify.c tree-pretty-print.c tree-into-ssa.c tree-outof-ssa.c tree-ssa-ccp.c tree-vn.c tree-ssa-uncprop.c tree-ssa-dce.c tree-ssa-copy.c tree-nrv.c tree-ssa-copyrename.c tree-ssa-pre.c tree-ssa-live.c tree-ssa-operands.c tree-ssa-alias.c tree-ssa-phiopt.c tree-ssa-forwprop.c tree-nested.c tree-ssa-dse.c tree-ssa-dom.c domwalk.c tree-tailcall.c gimple-low.c tree-iterator.c omp-low.c tree-phinodes.c tree-ssanames.c tree-sra.c tree-complex.c tree-vect-generic.c tree-ssa-loop.c tree-ssa-loop-niter.c tree-ssa-loop-manip.c tree-ssa-threadupdate.c tree-ssa-threadedge.c tree-vectorizer.c tree-vect-analyze.c tree-vect-transform.c tree-vect-patterns.c tree-ssa-loop-prefetch.c tree-ssa-loop-ivcanon.c tree-ssa-propagate.c tree-ssa-address.c tree-ssa-math-opts.c tree-ssa-loop-ivopts.c tree-if-conv.c tree-ssa-loop-unswitch.c alias.c bb-reorder.c bitmap.c builtins.c caller-save.c calls.c cfg.c cfganal.c cfgbuild.c cfgcleanup.c cfglayout.c cfgloop.c cfgloopanal.c cfgloopmanip.c loop-init.c loop-unswitch.c loop-unroll.c cfgrtl.c combine.c conflict.c convert.c coverage.c cse.c cselib.c dbxout.c ddg.c tree-ssa-loop-ch.c loop-invariant.c tree-ssa-loop-im.c debug.c df-core.c df-problems.c df-scan.c dfp.c diagnostic.c dojump.c dominance.c loop-doloop.c dwarf2asm.c dwarf2out.c emit-rtl.c except.c explow.c loop-iv.c expmed.c expr.c final.c flow.c fold-const.c function.c gcse.c genrtl.c ggc-common.c global.c graph.c haifa-sched.c hooks.c ifcvt.c integrate.c intl.c jump.c langhooks.c lcm.c lists.c local-alloc.c mode-switching.c modulo-sched.c optabs.c ${GCC_BINARY_DIR}/gcc/options.c opts.c opts-common.c params.c postreload.c postreload-gcse.c predict.c pointer-set.c backend-print-rtl.c print-tree.c profile.c value-prof.c var-tracking.c real.c recog.c reg-stack.c regclass.c regmove.c regrename.c reload.c reload1.c reorg.c resource.c backend-rtl.c rtlanal.c rtl-error.c sbitmap.c sched-deps.c sched-ebb.c sched-rgn.c sched-vis.c sdbout.c see.c simplify-rtx.c sreal.c stmt.c stor-layout.c stringpool.c struct-equiv.c targhooks.c timevar.c toplev.c tracer.c tree.c tree-dump.c varasm.c varray.c backend-vec.c version.c vmsdbgout.c xcoffout.c alloc-pool.c et-forest.c cfghooks.c bt-load.c pretty-print.c ggc-page.c web.c passes.c tree-profile.c rtlhooks.c cfgexpand.c lambda-mat.c lambda-trans.c lambda-code.c tree-loop-linear.c tree-ssa-sink.c tree-vrp.c tree-stdarg.c tree-cfgcleanup.c tree-ssa-reassoc.c tree-ssa-structalias.c tree-object-size.c rtl-factoring.c ${GCC_SOURCE_DIR}/gcc/config/${out_file} ${extra_srcs} ${host_hook_srcs} tree-inline.c cgraph.c cgraphunit.c tree-nomudflap.c ipa.c ipa-inline.c ipa-utils.c ipa-reference.c ipa-pure-const.c ipa-type-escape.c ipa-prop.c ipa-cp.c ${GCC_BINARY_DIR}/gcc/gtype-desc.c ${GCC_BINARY_DIR}/gcc/insn-attrtab.c ${GCC_BINARY_DIR}/gcc/insn-emit.c ${GCC_BINARY_DIR}/gcc/insn-modes.c ${GCC_BINARY_DIR}/gcc/insn-extract.c ${GCC_BINARY_DIR}/gcc/insn-opinit.c ${GCC_BINARY_DIR}/gcc/insn-output.c ${GCC_BINARY_DIR}/gcc/insn-peep.c ${GCC_BINARY_DIR}/gcc/insn-recog.c ${GCC_BINARY_DIR}/gcc/insn-preds.c ${GCC_BINARY_DIR}/gcc/insn-automata.c ${GCC_BINARY_DIR}/gcc/insn-flags.h ${GCC_BINARY_DIR}/gcc/insn-config.h ${GCC_BINARY_DIR}/gcc/insn-codes.h ${GCC_BINARY_DIR}/gcc/insn-attr.h ${GCC_BINARY_DIR}/gcc/genrtl.h ${GCC_BINARY_DIR}/gcc/gcov-iov.h )