Files
mercury/scripts/c2init.in
Zoltan Somogyi a319773719 Update the programming style of more scripts.
scripts/c2init.in:
scripts/mercury.in:
scripts/mmake.in:
scripts/mmc.in:
scripts/prepare_install_dir.in:
    Indent by four spaces, not by tabs, or by three spaces.

    Use ${varname}, not just $varname.

    Put successive commands on separate lines.

    Indent case statements in a consistent manner: put case patterns
    on their own lines; put ;;s on their own lines.

    Put quotes around strings that should be considered one word
    even if they are empty or contain spaces.
2023-10-01 21:02:18 +11:00

144 lines
4.3 KiB
Bash
Executable File

#! /bin/sh
#---------------------------------------------------------------------------#
# vim: ts=4 sw=4 et ft=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"
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