ecl/Makefile.in
Marius Gerbershagen e30c37691b tests: implement tests for cross compilation of user code
We start a remote ECL host and replace COMPILE-FILE and COMPILE by a
stub which shells out compile commands to this remote ECL. Moreover, a
few commands defining types, special variables and proclamations are
mirrored in the remote ECL as well. This of course is not a complete
synchronization mechanism and thus the state of the remote ECL will
not be 100% the same as that of the host which means that the COMPILE
stub is not an entirely correct implementation of the ANSI standard.
But it works well enough to run the test suite which is all we need.
2025-11-21 19:08:14 +01:00

161 lines
5 KiB
Makefile

# DIST: This is the distribution Makefile for ECL. configure can
# DIST: make most of the changes to this file you might want, so try
# DIST: that first.
# make all to compile and build ECL.
# make install to install it.
# make TAGS to update tags tables.
#
# make clean or make mostlyclean
# Delete all files from the current directory that are normally
# created by building the program. Don't delete the files that
# record the configuration. Also preserve files that could be made
# by building, but normally aren't because the distribution comes
# with them.
#
# Delete `.dvi' files here if they are not part of the distribution.
#
# make distclean
# Delete all files from the current directory that are created by
# configuring or building the program. If you have unpacked the
# source and built the program without creating any other files,
# `make distclean' should leave only the files that were in the
# distribution.
#
# make realclean
# Delete everything from the current directory that can be
# reconstructed with this Makefile. This typically includes
# everything deleted by distclean.
SHELL = /bin/sh
MACHINE = @MACHINE_VERSION@
# ========================= Last release ================================
VERSION=@PACKAGE_VERSION@
WWW=https://common-lisp.net/project/ecl/
ADDRESS=https://gitlab.com/embeddable-common-lisp/ecl
# ==================== Things `configure' Might Edit ====================
# Where to find the source code.
# This is set by the configure script's `--srcdir' option.
srcdir=@srcdir@
prefix=@prefix@
exec_prefix=@exec_prefix@
datarootdir=@datarootdir@
datadir=@datadir@
bindir=@bindir@
infodir=@infodir@
mandir=@mandir@
libdir=@libdir@
# ==================== Utility Programs for the Build ====================
# Allow the user to specify the install program.
@SET_MAKE@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
# ============================= Build ==============================
all: build/Makefile
cd build; $(MAKE)
.PHONY: all
Makefile: Makefile.in build/config.status
(cd build; ./config.status)
ecl_min: build/Makefile
cd build; $(MAKE) ecl_min
# ==================== Installation ====================
INSTALL_TARGET = @INSTALL_TARGET@
install: build/Makefile
cd build; $(MAKE) $(INSTALL_TARGET)
flatinstall: build/Makefile
cd build; $(MAKE) flatinstall
uninstall:
cd build; $(MAKE) uninstall
# ==================== Cleaning up and miscellanea ====================
# `clean'
# Delete all files from the current directory that are normally
# created by building the program. Don't delete the files that
# record the configuration. Also preserve files that could be made
# by building, but normally aren't because the distribution comes
# with them.
#
clean:
cd build; $(MAKE) clean
# `distclean'
# Delete all files from the current directory that are created by
# configuring or building the program. If you have unpacked the
# source and built the program without creating any other files,
# `make distclean' should leave only the files that were in the
# distribution.
distclean: clean
rm -rf build Makefile
# `realclean'
# Delete everything from the current directory that can be
# reconstructed with this Makefile.
# One exception, however: `make realclean' should not delete
# `configure' even if `configure' can be remade using a rule in the
# Makefile. More generally, `make realclean' should not delete
# anything that needs to exist in order to run `configure' and then
# begin to build the program.
realclean: distclean
check:
cd build && $(MAKE) check TESTS="$(TESTS)"
cross-check:
cd build && $(MAKE) cross-check TESTS="$(TESTS)"
ansi-test:
cd build && $(MAKE) ansi-test
cross-ansi-test:
cd build && $(MAKE) cross-ansi-test
# ==================== Various means of distribution ====================
TAR_DIR=ecl-$(VERSION)
doc:
$(MAKE) -C build/doc
.PHONY: doc
source-dist: $(TAR_DIR).tgz
$(TAR_DIR).tgz:
git archive --format=tar.gz --prefix=$(TAR_DIR)/ HEAD > $@
binary-dist: all
su -c "rm -rf tmp"
mkdir tmp
for i in tmp$(bindir) tmp$(infodir) tmp$(mandir) tmp$(libdir); do \
(echo $$i; IFS="/"; \for k in $$i; do echo $$k; (test -d $$k || mkdir $$k); chmod 755 $$k; cd $$k; done); \
done
prefix=`pwd`/tmp; cd build; $(MAKE) install prefix=$(prefix)
su -c "chown -R root.root tmp && cd tmp; tar czf ../ecl-$(VERSION)-$(MACHINE).tgz * && cd .. && rm -rf tmp"
# This creates a ZIP file with a flattened directory structure
windows-dist: all
cd build; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \
$(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR); \
zip -r $(TAR_DIR).zip $(TAR_DIR)
windows-nsi: all
cd build; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \
$(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR)
`pwd`/src/util/ecl_nsi.sh `pwd`/src/util/ecl.nsi build/$(TAR_DIR)
makensis.exe build/$(TAR_DIR)/ecl.nsi
mv build/$(TAR_DIR)/Setup.exe ecl-$(VERSION).exe