mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 17:33:38 +00:00
Mmake.common.in:
bindist/Mmakefile:
compiler/Mmakefile:
compiler/notes/Mmakefile:
doc/Mmakefile:
extras/align_right/Mmakefile:
extras/base64/Mmakefile:
extras/dynamic_linking/Mmakefile:
extras/error/Mmakefile:
extras/fixed/Mmakefile:
extras/graphics/samples/gears/Mmakefile.MacOSX:
extras/graphics/samples/maze/Mmakefile.MacOSX:
extras/lex/Mmakefile:
extras/monte/Mmakefile:
extras/posix/Mmakefile:
extras/references/Mmakefile:
extras/references/samples/Mmakefile:
extras/split_file/Mmakefile:
library/Mmakefile:
mdbcomp/Mmakefile:
runtime/Mmakefile:
scripts/Mmakefile:
ssdb/Mmakefile:
tests/Mmake.common:
tests/mmc_make/Mmakefile:
trace/Mmakefile:
util/Mmakefile:
Invoke the sh builtin "test" as "test", not as "[".
Make some target names more descriptive.
Fix indentation.
168 lines
6.6 KiB
Makefile
168 lines
6.6 KiB
Makefile
#-----------------------------------------------------------------------------#
|
|
# vim: ts=8 sw=8 noexpandtab ft=make
|
|
#-----------------------------------------------------------------------------#
|
|
# Copyright (C) 1996-2003, 2005-2006, 2008, 2010 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.
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
# This Mmake file is used to build a binary distribution.
|
|
# You need to have already installed the Mercury compiler.
|
|
|
|
MERCURY_DIR=..
|
|
# Make sure we get a version of Mmake.vars with INSTALL_PREFIX
|
|
# pointing to the configured installation directory.
|
|
include $(MERCURY_DIR)/scripts/Mmake.vars
|
|
include $(MERCURY_DIR)/Mmake.common
|
|
|
|
MERCURY_VERSION = mercury-$(VERSION).$(FULLARCH)
|
|
|
|
INSTALL_LIB_DIR = $(INSTALL_PREFIX)/lib
|
|
|
|
LIB_FILES = conf doc html inc ints lib mdb/mdb_doc modules reconf
|
|
|
|
# Miscellaneous scripts and utilities not processed by configure
|
|
UTILS = $(INSTALL_PREFIX)/bin/mkinit$(EXT_FOR_EXE) \
|
|
$(INSTALL_PREFIX)/bin/mdemangle$(EXT_FOR_EXE) \
|
|
$(INSTALL_PREFIX)/bin/mfiltercc$(EXT_FOR_EXE) \
|
|
$(INSTALL_PREFIX)/bin/mtags \
|
|
$(INSTALL_PREFIX)/bin/mprof_merge_runs \
|
|
$(INSTALL_PREFIX)/bin/vpath_find
|
|
|
|
README_ETC = ../COPYING ../COPYING.LIB ../HISTORY ../LIMITATIONS.md \
|
|
../NEWS.md ../RELEASE_NOTES ../BUGS ../WORK_IN_PROGRESS \
|
|
../TODO ../VERSION ../README.* ../LICENSE
|
|
|
|
INSTALL_SCRIPTS = ../scripts/c2init ../scripts/mmc \
|
|
../scripts/mercury_update_interface ../scripts/mgnuc \
|
|
../scripts/ml ../scripts/mmake ../scripts/mprof \
|
|
../scripts/mdb ../scripts/mkfifo_using_mknod \
|
|
../scripts/mercury_config ../scripts/Mmake.vars \
|
|
../scripts/mdbrc ../scripts/Mercury.config
|
|
|
|
SCRIPT_FILES = $(INSTALL_SCRIPTS) ../scripts/*.in ../scripts/*.sh-subr \
|
|
../scripts/Mmake.rules \
|
|
../scripts/canonical_grade \
|
|
../scripts/gud.el
|
|
|
|
CGI_PROG = $(INSTALL_PREFIX)/bin/mdprof_cgi
|
|
|
|
VIM_FILES = ../vim/*
|
|
|
|
CONFIG_FILES = ../config.sub ../config.guess ../install-sh
|
|
|
|
# These files have a local version bindist.$filename which will be
|
|
# preprocessed to create the final version.
|
|
MISC_FILES = INSTALL README Makefile
|
|
|
|
.SUFFIXES: .in
|
|
|
|
.in:
|
|
CONFIG_FILES=$@ CONFIG_HEADERS= $(MERCURY_DIR)/config.status
|
|
# check to ensure there were no mispelt autoconf variable names
|
|
if grep -n '[^$$]@.*@' $@; then false; else true; fi
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
DEFAULT_TARGET=bindist
|
|
|
|
.PHONY: bindist
|
|
bindist: binary_distribution
|
|
|
|
.PHONY: binary_distribution
|
|
binary_distribution: bindist.Makefile bindist.INSTALL
|
|
# Make a quick check that there is a mercury installation in
|
|
# $(INSTALL_PREFIX) by looking for mmc and mercury_compile.
|
|
test -f $(INSTALL_BINDIR)/mmc
|
|
test -f $(INSTALL_MERC_BIN_DIR)/mercury_compile
|
|
# create a temporary directory in which to assemble the distribution
|
|
test -d $(MERCURY_VERSION) || mkdir $(MERCURY_VERSION)
|
|
# tar it up
|
|
# (XXX don't use redirection or pipes, because on gnu-win32
|
|
# stdout defaults to text mode, which breaks tar and gzip)
|
|
# NOTE: we tar up all of the existing bin directory even though
|
|
# most of it will be replaced when the installation is reconfigured.
|
|
(dir=`pwd` && cd $(INSTALL_BINDIR)/.. && \
|
|
tar -cf $$dir/$(MERCURY_VERSION)/bin.tar bin && \
|
|
gzip $$dir/$(MERCURY_VERSION)/bin.tar)
|
|
(dir=`pwd` && cd $(INSTALL_LIB_DIR)/mercury && \
|
|
tar -cf $$dir/$(MERCURY_VERSION)/lib.tar $(LIB_FILES) && \
|
|
gzip $$dir/$(MERCURY_VERSION)/lib.tar)
|
|
(dir=`pwd` && cd $(INSTALL_INFO_DIR)/.. && \
|
|
tar -cf $$dir/$(MERCURY_VERSION)/info.tar info && \
|
|
gzip $$dir/$(MERCURY_VERSION)/info.tar)
|
|
(dir=`pwd` && cd $(INSTALL_MAN_DIR)/.. && \
|
|
tar -cf $$dir/$(MERCURY_VERSION)/man.tar man && \
|
|
gzip $$dir/$(MERCURY_VERSION)/man.tar)
|
|
test -d $(MERCURY_VERSION)/scripts || mkdir $(MERCURY_VERSION)/scripts
|
|
cp $(SCRIPT_FILES) $(MERCURY_VERSION)/scripts
|
|
test -d $(MERCURY_VERSION)/util || mkdir $(MERCURY_VERSION)/util
|
|
cp $(UTILS) $(MERCURY_VERSION)/util
|
|
test -d $(MERCURY_VERSION)/cgi || mkdir $(MERCURY_VERSION)/cgi
|
|
if test "$(ENABLE_DEEP_PROFILER)" = "yes"; then \
|
|
cp $(CGI_PROG) $(MERCURY_VERSION)/cgi; \
|
|
else \
|
|
true; \
|
|
fi
|
|
test -d $(MERCURY_VERSION)/vim || mkdir $(MERCURY_VERSION)/vim
|
|
cp -R $(VIM_FILES) $(MERCURY_VERSION)/vim
|
|
cp $(CONFIG_FILES) $(MERCURY_VERSION)
|
|
cp $(README_ETC) $(MERCURY_VERSION)
|
|
-cd ../samples && mmake realclean
|
|
-cd ../samples/diff && mmake realclean
|
|
-cd ../samples/c_interface && mmake realclean
|
|
-cd ../samples/c_interface/c_calls_mercury && mmake realclean
|
|
-cd ../samples/c_interface/cplusplus_calls_mercury && mmake realclean
|
|
-cd ../samples/c_interface/mercury_calls_c && mmake realclean
|
|
-cd ../samples/c_interface/simpler_c_calls_mercury && mmake realclean
|
|
-cd ../samples/c_interface/simpler_cplusplus_calls_mercury && \
|
|
mmake realclean
|
|
-cd ../extras/cgi && mmake realclean
|
|
-cd ../extras/complex_numbers && mmake realclean
|
|
-cd ../extras/complex_numbers/tests && mmake realclean
|
|
-cd ../extras/complex_numbers/samples && mmake realclean
|
|
-cd ../extras/graphics && mmake realclean
|
|
-cd ../extras/graphics/samples/calc && mmake realclean
|
|
-cd ../extras/graphics/samples/maze && mmake realclean
|
|
-cd ../extras/trailed_update && mmake realclean
|
|
-cd ../extras/trailed_update/samples && mmake realclean
|
|
-if test -d ../tests ; then \
|
|
cd ../tests && mmake realclean; \
|
|
else \
|
|
cd ../../tests && mmake realclean; \
|
|
fi
|
|
(dir=`pwd` && cd .. && \
|
|
tar -cf $$dir/$(MERCURY_VERSION)/samples.tar samples && \
|
|
gzip $$dir/$(MERCURY_VERSION)/samples.tar)
|
|
(dir=`pwd` && cd .. && \
|
|
tar -cf $$dir/$(MERCURY_VERSION)/extras.tar extras && \
|
|
gzip $$dir/$(MERCURY_VERSION)/extras.tar)
|
|
if test -d ../tests ; then \
|
|
(dir=`pwd` && cd .. && \
|
|
tar -cf $$dir/$(MERCURY_VERSION)/tests.tar tests && \
|
|
gzip $$dir/$(MERCURY_VERSION)/tests.tar) \
|
|
else \
|
|
(dir=`pwd` && cd ../.. && \
|
|
tar -cf $$dir/$(MERCURY_VERSION)/tests.tar tests && \
|
|
gzip $$dir/$(MERCURY_VERSION)/tests.tar) \
|
|
fi
|
|
for file in $(MISC_FILES); do \
|
|
sed -e 's/<VERSION>/$(VERSION)/g' \
|
|
-e 's/<FULLARCH>/$(FULLARCH)/g' \
|
|
bindist.$$file > $(MERCURY_VERSION)/$$file || exit 1; \
|
|
done
|
|
# Ensure the install file is executable.
|
|
chmod +x $(MERCURY_VERSION)/INSTALL
|
|
# (XXX don't use redirection or pipes, because on gnu-win32
|
|
# stdout defaults to text mode, which breaks tar and gzip)
|
|
tar -cf ../$(MERCURY_VERSION).tar $(MERCURY_VERSION)
|
|
gzip ../$(MERCURY_VERSION).tar
|
|
rm -rf $(MERCURY_VERSION)
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
clean_local:
|
|
rm -rf mercury-rotd* mercury-DEV*
|
|
|
|
#-----------------------------------------------------------------------------#
|