mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-23 13:23:47 +00:00
Estimated hours taken: 1000 Add Opium-M in the extras. (committed on behalf of Erwan Jahier). extras/opium_m/copyright.txt: The copyright for Opium-M. extras/opium_m/VERSION: extras/opium_m/README: extras/opium_m/opium-mode.el: An emacs mode designed to write opium scenario. extras/opium_m/INSTALL-OPIUM-M: Opium-M installation script. extras/opium_m/source/interactive_queries.op: extras/opium_m/source/browse.op: extras/opium_m/source/control_flow.op: extras/opium_m/source/coprocess_M.op: extras/opium_m/source/opium_kernel_M.op: extras/opium_m/source/current_arg_M.op: extras/opium_m/source/current_slots_M.op: extras/opium_m/source/display_M.op: extras/opium_m/source/source_M.op: extras/opium_m/source/event_attributes_M.op: extras/opium_m/source/step_by_step_M.op: extras/opium_m/source/exec_control_M.op: extras/opium_m/source/forward_move_M.op: extras/opium_m/source/load_Opium-M.pl: extras/opium_m/source/make_scenario-M.pl: extras/opium_m/source/load_Opium-M_without_banner.pl: extras/opium_m/source/load_scenario-M.pl: The Opium-M source files. extras/opium_m/source/partch.autoload: extras/opium_m/source/partch.interface: extras/opium_m/source/partch.parameter: extras/opium_m/source/partch.scenario_handler: extras/opium_m/source/partch.error: extras/opium_m/source/partch.types: extras/opium_m/source/partch.translate: extras/opium_m/source/partch.util.pl: extras/opium_m/source/partch.make: extras/opium_m/source/partch.scenario: Patches to create the scenario handler for Opium-M. autoload.op, etc. are part of the Eclipse distribution; to avoid licensing issues, we copy thoses files from the Eclipse installation directory during the installation and then we patch them using those files. extras/opium_m/non-regression-tests/*: Non regression tests for Opium-M. extras/opium_m/non-regression-tests/queens.m: extras/opium_m/non-regression-tests/test_vars.m: extras/opium_m/non-regression-tests/test_listing.m: Mercury files that are tested. extras/opium_m/non-regression-tests/browse.in: extras/opium_m/non-regression-tests/queens.in: extras/opium_m/non-regression-tests/test_vars.in: Input of the non regression tests. extras/opium_m/non-regression-tests/queens.exp: extras/opium_m/non-regression-tests/test_vars.exp: extras/opium_m/non-regression-tests/listing_output.exp: Expected output of the non regression tests. extras/opium_m/non-regression-tests/runtests: extras/opium_m/non-regression-tests/Mmakefile: To perform the non regression tests. extras/opium_m/non-regression-tests/Mmake.common: extras/opium_m/non-regression-tests/shutdown: extras/opium_m/non-regression-tests/startup: extras/opium_m/non-regression-tests/handle_options: Those files are copied from the Mercury tests repository. extras/opium_m/scripts/exec_mercury_program: Script that is used to run Mercury programs under the control of Opium-M. extras/opium_m/scripts/fixmanual: Script that patch the output of `manual' command (which automaticly generates the Opium-M Reference Manual).
84 lines
2.5 KiB
Plaintext
84 lines
2.5 KiB
Plaintext
#-----------------------------------------------------------------------------#
|
|
|
|
#
|
|
# Note: Mmake lets you override MCFLAGS for a particular file by setting
|
|
# MCFLAGS-foo. Similarly, you can override GRADEFLAGS for a particular
|
|
# file by setting both GRADEFLAGS-foo and (for compiling the foo_init.c
|
|
# file) GRADEFLAGS-foo_init.
|
|
#
|
|
|
|
# override this with `mmake HAVE_NUPROLOG=yes'
|
|
# if you want to rebuild the `.exp' files.
|
|
HAVE_NUPROLOG=no
|
|
|
|
DIFF_OPTS=-c
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
# .PRECIOUS: %.mod %.c %.o %_init.c %.no %.nu %_init.nl %_init.no
|
|
|
|
%_init.c: Entry
|
|
|
|
#
|
|
# If there is a `.inp' file, then we pipe that in as the command's input.
|
|
# Then we run the command, with stdout and stderr both redirected to the
|
|
# `.out' file. Finally if the command fails (returns non-zero exit status),
|
|
# we print out the contents of the `.out' file. We use `grep . $@ /dev/null'
|
|
# to print out the contents, because that precedes each line of output with
|
|
# the filename, which is helpful when running a parallel make.
|
|
#
|
|
%.out: %
|
|
{ [ -f $*.inp ] && cat $*.inp; } | ./$< > $@ 2>&1 || \
|
|
{ grep . $@ /dev/null; exit 1; }
|
|
|
|
#
|
|
# For some test cases, there is more than one valid output.
|
|
# We try matching the output with the `.exp' file, and if that
|
|
# doesn't succeed, and there is a `.exp2' file, then we try matching
|
|
# against that too.
|
|
#
|
|
%.res: %.exp %.out
|
|
-rm -f $@
|
|
diff $(DIFF_OPTS) $*.exp $*.out > $@ || \
|
|
{ [ -f $*.exp2 ] && diff $(DIFF_OPTS) $*.exp2 $*.out > $@; }
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
clean_local: clean_out clean_res
|
|
|
|
clean_mc: clean_c clean_o clean_out clean_res
|
|
|
|
clean_out:
|
|
rm -f *.out
|
|
|
|
clean_exp:
|
|
rm -f *.exp
|
|
|
|
clean_res:
|
|
rm -f *.res
|
|
|
|
#
|
|
# The `foo' targets make `foo_local' in the current directory before
|
|
# recursively making `foo' in all subdirectories. The recursive part
|
|
# is handled in individual Mmakefiles.
|
|
#
|
|
|
|
.PHONY: check_local dep_local depend_local all_local
|
|
|
|
.PHONY: check_subdirs dep_subdirs depend_subdirs realclean_subdirs \
|
|
clean_subdirs all_subdirs
|
|
|
|
check: check_local check_subdirs
|
|
dep: dep_local dep_subdirs
|
|
depend: depend_local depend_subdirs
|
|
realclean: realclean_subdirs
|
|
clean: clean_subdirs
|
|
all: all_local all_subdirs
|
|
|
|
SUBDIR_MMAKE = mmake \
|
|
GRADE='$(GRADE)' \
|
|
EXTRA_CFLAGS='$(EXTRA_CFLAGS)' \
|
|
EXTRA_MCFLAGS='$(EXTRA_MCFLAGS)'
|
|
|
|
#-----------------------------------------------------------------------------#
|