mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-16 18:03:36 +00:00
--no-ansi (mgnuc) and --no-ansi-c (mmc) have not actually done anything for
many years now. Deprecate these options and remove their "use" throughout most
of the Mercury system. (The remaining uses are in the Makefiles for the Boehm
GC, which need to be updated separately.)
Also deprecate the internal compiler option --cflags-for-ansi.
compiler/options.m:
Document that --no-ansi-c is now deprecated.
Document that the internal option --cflags-for-ansi is now
deprecated.
compiler/compile_target_code.m:
Do not pass the ANSI options to the C compiler.
scripts/mgnuc.in:
scripts/mgnuc_file_opts.sh-subr:
Deprecate the --no-ansi option; delete code that no longer does
anything useful.
configure.ac:
Delete the configuration variable CFLAGS_FOR_ANSI; it is only ever
set to be empty. (The comment talks about --no-ansi doing other things
in the mgnuc script. It used to also cause some preprocessor macros
to be defined for compatibility with the system headers on some
platforms -- that has not been the case since 2013.)
doc/user_guide.texi:
Document that --no-ansi-c is deprecated.
bytecode/Mmakefile:
compiler/Mercury.options:
library/Mercury.options:
extras/odbc/odbc.m:
runtime/Mmakefile:
scripts/Mercury.config.bootstrap.in:
scripts/Mercury.config.in:
tests/hard_coded/Mercury.options:
tests/valid/Mercury.options:
trace/Mmakefile:
util/Mmakefile:
Conform to the above change.
NEWS.md:
Announce the above.
160 lines
4.1 KiB
Makefile
160 lines
4.1 KiB
Makefile
#-----------------------------------------------------------------------------#
|
|
# vim: ts=8 sw=8 noexpandtab ft=make
|
|
#-----------------------------------------------------------------------------#
|
|
# Copyright (C) 1998-2002, 2005 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.
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
# Mmake - Mmake file for the bytecode interpreter
|
|
|
|
MAIN_TARGET=all
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
# keep these lists in alphabetical order, please
|
|
|
|
# bytecode headers
|
|
MB_HDRS = \
|
|
mb_basetypes.h \
|
|
mb_bytecode.h \
|
|
mb_disasm.h \
|
|
mb_exec.h \
|
|
mb_interface.h \
|
|
mb_machine.h \
|
|
mb_machine_def.h \
|
|
mb_machine_show.h \
|
|
mb_mem.h \
|
|
mb_module.h \
|
|
mb_stack.h \
|
|
mb_util.h
|
|
|
|
# bytecode c files
|
|
MB_CFILES = \
|
|
mb_bytecode.c \
|
|
mb_disasm.c \
|
|
mb_exec.c \
|
|
mb_interface.c \
|
|
mb_interface_stub.c \
|
|
mb_machine.c \
|
|
mb_machine_show.c \
|
|
mb_mem.c \
|
|
mb_module.c \
|
|
mb_stack.c \
|
|
mb_util.c
|
|
|
|
# bytecode mercury files
|
|
MB_MFILES = \
|
|
# mb_interface_stub.m
|
|
|
|
# bytecode object files
|
|
MB_OBJS = $(MB_MFILES:%.m=%.o) $(MB_CFILES:%.c=%.o)
|
|
|
|
$(MB_OBJS): $(MB_HDRS)
|
|
|
|
# Specify which files to check for namespace cleanliness, and which name
|
|
# prefixes are allowed.
|
|
|
|
CHECK_HDRS = $(MB_HDRS)
|
|
CHECK_MHDRS =
|
|
CHECK_OBJS = $(MB_OBJS)
|
|
ALLOW_LIB_PREFIX=no
|
|
ALLOW_BROWSER_PREFIX=no
|
|
ALLOW_MDBCOMP_PREFIX=no
|
|
ALLOW_SSDB_PREFIX=no
|
|
|
|
MERCURY_DIR=..
|
|
include $(MERCURY_DIR)/Mmake.common
|
|
-include ../Mmake.params
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
# NOTE: any library functions that called from bytecode must be compiled
|
|
# with trace information. (So their entry labels can be looked up)
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
MERCURY_SYSTEM = \
|
|
$(RUNTIME_DIR)/*.c $(RUNTIME_DIR)/*.h \
|
|
$(RUNTIME_DIR)/machdeps/*.c $(RUNTIME_DIR)/machdeps/*.h\
|
|
$(LIBRARY_DIR)/*.m \
|
|
$(TRACE_DIR)/*.h $(TRACE_DIR)/*.c \
|
|
$(BROWSER_DIR)/*.m \
|
|
$(MDBCOMP_DIR)/*.m \
|
|
$(BOEHM_GC_DIR)/*.h $(BOEHM_GC_DIR)/include/*.h
|
|
|
|
MERCURY_INC = \
|
|
-I$(LIBRARY_DIR) \
|
|
-I$(RUNTIME_DIR) \
|
|
-I$(BOEHM_GC_DIR) \
|
|
-I$(BOEHM_GC_DIR)/include \
|
|
-I$(TRACE_DIR)
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
CFLAGS = $(MERCURY_INC) -DMR_BYTECODE_CALLABLE -g
|
|
|
|
MCFLAGS = --trace shallow --generate-bytecode -O 0
|
|
|
|
MLFLAGS = --trace
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
# The actual program (as distinct from bytecode interpreter)
|
|
|
|
HDRS =
|
|
|
|
CFILES =
|
|
|
|
MFILES = simple.m
|
|
|
|
OBJS = simple_init.o $(MFILES:%.m=%.o) $(CFILES:%.c=%.o)
|
|
|
|
$(OBJS): $(HDRS) $(MB_HDRS)
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
ALL_HDRS = $(HDRS) $(MB_HDRS)
|
|
ALL_MFILES = $(MFILES) $(MB_MFILES)
|
|
ALL_CFILES = $(CFILES) $(MB_CFILES)
|
|
ALL_OBJS = $(OBJS) $(MB_OBJS)
|
|
|
|
ALL_DEPENDS=$(ALL_MFILES:%=%.depend)
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
.PHONY: all
|
|
all: check
|
|
|
|
MLOBJS = $(MB_OBJS)
|
|
|
|
.PHONY: check
|
|
check: simple
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
# tags actually depends on $(MERCURY_SYSTEM) too but since changes to that
|
|
# hardly ever have an effect, just ignore them.
|
|
tags: $(ALL_CFILES) $(ALL_HDRS) tags2
|
|
ctags $(CTAGFLAGS) $(ALL_CFILES) $(ALL_HDRS) $(MERCURY_SYSTEM)
|
|
|
|
tags2: $(ALL_MFILES)
|
|
mtags $(MTAGFLAGS) $(ALL_MFILES) $(MERCURY_SYSTEM)
|
|
mv tags tags2
|
|
|
|
.PHONY: depend
|
|
depend: $(ALL_DEPENDS)
|
|
|
|
.PHONY: clean_local
|
|
clean_local:
|
|
rm -f $(ALL_MFILES:%.m=%.mbc)
|
|
rm -f $(ALL_MFILES:%.m=%.bytedebug)
|
|
rm -f $(ALL_OBJS)
|
|
|
|
.PHONY: realclean_local
|
|
realclean_local:
|
|
rm -f tags tags2 *.mbc *.bytedebug
|
|
# XXX: The dependencies in mmake ignore .mbc and .bytedebug files
|
|
# so we have to manually delete them. We delete all bytecode files
|
|
# because it will leave submodule files if we don't
|
|
# (eg: module simple contains simple2: simple.simple2.mbc will be
|
|
# generated but will not be removed properly)
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|