mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-16 09:53:36 +00:00
This file-specific setting will override a default setting of expandtabs
in $HOME/.vimrc.
*/Makefile:
*/Mmakefile:
As above.
tests/hard_coded/.gitignore:
Don't ignore the purity subdir. This ignore must have been left over
from when purity.m was a test in hard_coded, not hard_coded/purity,
and it ignored an executable, not a directory.
162 lines
4.2 KiB
Plaintext
162 lines
4.2 KiB
Plaintext
#-----------------------------------------------------------------------------#
|
|
# vim: ts=8 sw=8 noexpandtab
|
|
#-----------------------------------------------------------------------------#
|
|
# 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
|
|
|
|
MGNUCFLAGS-mb_disasm = --no-ansi
|
|
|
|
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)
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|