1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-05 22:20:24 -08:00

Support out-of-tree builds

* mps/example/scheme/Makefile.in (VPATH): Set VPATH.
* mps/Makefile.in (COMMON_OPTS): New.  Pass SRCDIR down to sub-make.
* mps/code/comm.gmk (VPATH): Set VPATH from SRCDIR parameter
* mps/configure.ac (AC_CONFIG_COMMANDS): Copy .gmk makefiles and some
other things to the biuld directory.
This commit is contained in:
Helmut Eller 2025-09-22 16:56:02 +02:00
parent a97f6d888f
commit 1507199e35
4 changed files with 33 additions and 16 deletions

View file

@ -23,11 +23,12 @@ MPS_BUILD_NAME=@MPS_BUILD_NAME@
MPS_TARGET_NAME=$(MPS_OS_NAME)$(MPS_ARCH_NAME)$(MPS_BUILD_NAME)
EXTRA_TARGETS=@EXTRA_TARGETS@
prefix=$(DESTDIR)@prefix@
srcdir=@srcdir@
CC=@CC@
CFLAGSCOMPILERSTRICT=-Wno-error -std=c89 -pedantic
TARGET_OPTS=-C code -f $(MPS_TARGET_NAME).gmk \
CC='$(CC)' \
CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)' \
COMMON_OPTS=-C code SRCDIR=../$(srcdir)/code \
CC='$(CC)' CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)'
TARGET_OPTS=$(COMMON_OPTS) -f $(MPS_TARGET_NAME).gmk \
EXTRA_TARGETS="$(EXTRA_TARGETS)"
XCODEBUILD=xcrun xcodebuild -project code/mps.xcodeproj
@ -41,7 +42,7 @@ clean-make-build:
$(MAKE) $(TARGET_OPTS) clean
install-make-build: make-install-dirs build-via-make
$(INSTALL_DATA) code/mps*.h $(prefix)/include/
$(INSTALL_DATA) $(srcdir)/code/mps*.h $(prefix)/include/
$(INSTALL_DATA) code/$(MPS_TARGET_NAME)/cool/mps.a $(prefix)/lib/libmps-debug.a
$(INSTALL_DATA) code/$(MPS_TARGET_NAME)/hot/mps.a $(prefix)/lib/libmps.a
for PROGRAM in $(EXTRA_TARGETS); do $(INSTALL_PROGRAM) code/$(MPS_TARGET_NAME)/hot/$$PROGRAM $(prefix)/bin/$$PROGRAM; done
@ -60,15 +61,15 @@ install-xcode-build: make-install-dirs build-via-xcode
$(INSTALL_DATA) code/xc/Release/libmps.a $(prefix)/lib/libmps.a
for PROGRAM in $(EXTRA_TARGETS); do $(INSTALL_PROGRAM) code/xc/Release/$$PROGRAM $(prefix)/bin/$$PROGRAM; done
Makefile: Makefile.in config.status
Makefile: $(srcdir)/Makefile.in config.status
./config.status Makefile
clean: @CLEAN_TARGET@
config.status: configure
config.status: $(srcdir)/configure
configure: configure.ac
autoreconf -vif
$(srcdir)/configure: $(srcdir)/configure.ac
autoreconf -vif $(srcdir)
distclean: clean
rm -rf autom4te.cache/ config.log config.status Makefile
@ -82,14 +83,12 @@ install: @INSTALL_TARGET@
test-make-build:
$(MAKE) $(TARGET_OPTS) testci testratio testscheme
$(MAKE) -C code -f anan$(MPS_BUILD_NAME).gmk VARIETY=cool \
CC='$(CC)' \
CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)' \
$(MAKE) $(COMMON_OPTS) \
-f anan$(MPS_BUILD_NAME).gmk VARIETY=cool \
clean-testansi
$(MAKE) -C code -f anan$(MPS_BUILD_NAME).gmk VARIETY=cool \
CC='$(CC)' \
$(MAKE) $(COMMON_OPTS) \
-f anan$(MPS_BUILD_NAME).gmk VARIETY=cool \
CFLAGS="-DCONFIG_POLL_NONE" \
CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)' \
clean-testpollnone
test-xcode-build:

View file

@ -69,6 +69,9 @@ ifndef CFLAGSOPT
error "comm.gmk: CFLAGSOPT not defined"
endif
ifdef SRCDIR
VPATH=$(SRCDIR)
endif
# TELEMETRY TARGETS

View file

@ -193,6 +193,20 @@ AC_SUBST(LDFLAGS)
AC_SUBST(CPPFLAGS)
AC_CONFIG_FILES(Makefile example/scheme/Makefile)
AC_CONFIG_COMMANDS(
[gmk],
[case $srcdir in
.) # in-place build
;;
*) echo "copying .gmk files"
(cd $srcdir &&
cp --parents code/*.gmk \
tool/testcases.txt tool/testrun.sh \
example/scheme/*.scm \
$ac_pwd)
;;
esac])
AC_OUTPUT
echo 1>&2 "CONFIGURE/MAKE IS NOT THE BEST WAY TO BUILD THE MPS

View file

@ -4,7 +4,9 @@
CFLAGS = @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ -std=c99
MPS = ../../code
MPS = @srcdir@/../../code
VPATH = @srcdir@
TARGETS = scheme-malloc scheme scheme-advanced
@ -15,7 +17,6 @@ all: $(TARGETS)
$(TARGETS): %: %.c Makefile
$(CC) $(CFLAGS) -o $@ -I $(MPS) $< $(MPS)/mps.c
scheme-boehm: %: %.c Makefile
$(CC) $(CFLAGS) -o $@ $< -lgc