mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-08 02:11:55 +00:00
Estimated hours taken: 2 Branches: main Move the intermodule analysis framework into the `compiler' directory, in preparation for making it specific to the Mercury compiler, rather than having it generic in case some fictional being might want to use it with a .NET compiler one day. This will make it easier to use and modify. compiler/analysis.file.m: compiler/analysis.m: Copy these files from the `analysis' directory. compiler/top_level.m: Include analysis.m as a new package. compiler/Mercury.options: Add a bug workaround line from analysis/Mercury.options. analysis/Mercury.options: analysis/Mmakefile: analysis/analysis.file.m: analysis/analysis.m: analysis/mer_analysis.m: Replace the contents of these files with comments that the analysis framework is now in the `compiler' directory. We don't actually delete them so their histories remain easily accessible. analysis/README: Mention that the code has been moved. compiler/notes/compiler_design.html: compiler/notes/overall_design.html: Update documentation. Mmake.workspace: Mmakefile: configure.in: compiler/.mgnuc_copts: compiler/COMP_FLAGS.in: compiler/Mmakefile: deep_profiler/.mgnuc_copts: scripts/Mmake.vars.in: scripts/c2init.in: scripts/mercury_config.in: scripts/prepare_tmp_dir_fixed_part.in: tools/binary: tools/binary_step: tools/bootcheck: tools/lmc.in: tools/make_arena: compiler/notes/coding_standards.html: Remove references to the `analysis' directory and `libmer_analysis'.
138 lines
3.7 KiB
Bash
Executable File
138 lines
3.7 KiB
Bash
Executable File
#! /bin/sh
|
|
# @configure_input@
|
|
#---------------------------------------------------------------------------#
|
|
# Copyright (C) 1995-2008 The University of Melbourne.
|
|
# This file may only be copied under the terms of the GNU General
|
|
# Public License - see the file COPYING in the Mercury distribution.
|
|
#---------------------------------------------------------------------------#
|
|
|
|
# C2INIT - Convert *.c to *_init.c
|
|
#
|
|
# This script outputs an appropriate init.c, given the .c files.
|
|
# Type `c2init --help' for usage message.
|
|
#
|
|
# *************************************************************************
|
|
# *** IMPORTANT NOTE: any changes to this file may also require similar ***
|
|
# *** changes to compiler/compile_target_code.m ***
|
|
# *************************************************************************
|
|
|
|
Usage="\
|
|
Name: c2init - Create Mercury initialization file.
|
|
Usage: c2init [options] *.c *.init ..."
|
|
|
|
FULLARCH=@FULLARCH@
|
|
DEFAULT_GRADE=${MERCURY_DEFAULT_GRADE=@DEFAULT_GRADE@}
|
|
|
|
# include the file `parse_ml_options.sh-subr', which in turn includes
|
|
# the sh-subr files dealing with grades
|
|
@PARSE_ML_OPTIONS@
|
|
|
|
# include the file `canonical_grade.sh-subr'
|
|
@CANONICAL_GRADE@
|
|
|
|
# If you change one of these, or if you add a new one, you will also need
|
|
# to check the following files to see if corresponding changes are needed
|
|
# there as well:
|
|
#
|
|
# Mmake.workspace
|
|
# Mmakefile
|
|
# compiler/compile_target_code.m
|
|
# scripts/c2init.in
|
|
# scripts/ml.in
|
|
# scripts/Mercury.config.in
|
|
# scripts/Mercury.config.bootstrap.in
|
|
# tools/bootcheck,
|
|
# tools/binary
|
|
# tools/binary_step
|
|
# tools/linear
|
|
# tools/lmc.in
|
|
# tools/lml
|
|
|
|
RT_LIB_NAME=mer_rt
|
|
STD_LIB_NAME=mer_std
|
|
TRACE_LIB_NAME=mer_trace
|
|
EVENTSPEC_LIB_NAME=mer_eventspec
|
|
BROWSER_LIB_NAME=mer_browser
|
|
MDBCOMP_LIB_NAME=mer_mdbcomp
|
|
SSDB_LIB_NAME=mer_ssdb
|
|
|
|
MKINIT=${MERCURY_MKINIT=mkinit}
|
|
|
|
case $debug in true)
|
|
trace_opt="-t" ;;
|
|
esac
|
|
|
|
case $debug in true)
|
|
init_opt="-i" ;;
|
|
esac
|
|
|
|
case $profile_deep in true)
|
|
init_opt="-i" ;;
|
|
esac
|
|
|
|
if test "$experimental_complexity" != ""
|
|
then
|
|
experimental_complexity_opt="-X $experimental_complexity"
|
|
else
|
|
experimental_complexity_opt=""
|
|
fi
|
|
|
|
if test "$mercury_stdlib_dir" != ""
|
|
then
|
|
MERCURY_MOD_LIB_MODS="\
|
|
$mercury_stdlib_dir/modules/$GRADE/$RT_LIB_NAME.init \
|
|
$mercury_stdlib_dir/modules/$GRADE/$STD_LIB_NAME.init"
|
|
MERCURY_TRACE_LIB_MODS="\
|
|
$mercury_stdlib_dir/modules/$GRADE/$BROWSER_LIB_NAME.init \
|
|
$mercury_stdlib_dir/modules/$GRADE/$MDBCOMP_LIB_NAME.init"
|
|
MERCURY_SSDB_LIB_MODS="\
|
|
$mercury_stdlib_dir/modules/$GRADE/$SSDB_LIB_NAME.init"
|
|
fi
|
|
MERCURY_TRACE_LIB_MODS="$MERCURY_TRACE_LIB_MODS $trace_init_files"
|
|
MERCURY_SSDB_LIB_MODS="$MERCURY_SSDB_LIB_MODS $ssdb_init_files"
|
|
|
|
MERCURY_ALL_LIB_MODS="$MERCURY_MOD_LIB_MODS"
|
|
|
|
# XXX why does this test $trace_opt instead of $trace?
|
|
case "$trace_opt" in
|
|
-t)
|
|
init_opt="-i"
|
|
MERCURY_ALL_LIB_MODS="$MERCURY_ALL_LIB_MODS\
|
|
$MERCURY_TRACE_LIB_MODS"
|
|
;;
|
|
esac
|
|
|
|
case $ss_debug in
|
|
true)
|
|
ssdb=true
|
|
;;
|
|
esac
|
|
|
|
case $ssdb in
|
|
true)
|
|
MERCURY_ALL_LIB_MODS="$MERCURY_ALL_LIB_MODS\
|
|
$MERCURY_SSDB_LIB_MODS"
|
|
;;
|
|
esac
|
|
|
|
# XXX: $EXTRA_INIT_FILES is not set or used anywhere by our code, and users
|
|
# can't set it since it is not documented anywhere, so its value should
|
|
# always be the empty string.
|
|
|
|
case $# in
|
|
0) exec $MKINIT -c"$maxcalls" $init_opt $trace_opt \
|
|
$library_opt $defentry_opt $extra_inits_opt \
|
|
-g "$GRADE" -o "$init_c_file" $experimental_complexity_opt \
|
|
$extra_init_dirs $always_exec_init_opts \
|
|
$EXTRA_INIT_FILES $MERCURY_ALL_LIB_MODS
|
|
;;
|
|
*) exec $MKINIT -c"$maxcalls" $init_opt $trace_opt \
|
|
$library_opt $defentry_opt $extra_inits_opt \
|
|
-g "$GRADE" -o "$init_c_file" $experimental_complexity_opt \
|
|
-r "$runtime_flags" \
|
|
$extra_init_dirs $always_exec_init_opts \
|
|
"$@" \
|
|
$EXTRA_INIT_FILES $MERCURY_ALL_LIB_MODS
|
|
;;
|
|
esac
|