aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHelmut Eller2025-09-22 16:56:02 +0200
committerHelmut Eller2025-09-22 16:56:02 +0200
commit1507199e3573d7786991d181d06885d82999c3b2 (patch)
tree04732e313a5ff1eef5cc0159bc483225158fe7ed
parenta97f6d888fcb34b416a64724e67b7d7e77df6f68 (diff)
downloademacs-scratch/mps-import2.tar.gz
emacs-scratch/mps-import2.zip
Support out-of-tree buildsscratch/mps-import2
* 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.
-rw-r--r--mps/Makefile.in27
-rw-r--r--mps/code/comm.gmk3
-rw-r--r--mps/configure.ac14
-rw-r--r--mps/example/scheme/Makefile.in5
4 files changed, 33 insertions, 16 deletions
diff --git a/mps/Makefile.in b/mps/Makefile.in
index 15b16a2c74e..743a1cfe6cd 100644
--- a/mps/Makefile.in
+++ b/mps/Makefile.in
@@ -23,11 +23,12 @@ MPS_BUILD_NAME=@MPS_BUILD_NAME@
23MPS_TARGET_NAME=$(MPS_OS_NAME)$(MPS_ARCH_NAME)$(MPS_BUILD_NAME) 23MPS_TARGET_NAME=$(MPS_OS_NAME)$(MPS_ARCH_NAME)$(MPS_BUILD_NAME)
24EXTRA_TARGETS=@EXTRA_TARGETS@ 24EXTRA_TARGETS=@EXTRA_TARGETS@
25prefix=$(DESTDIR)@prefix@ 25prefix=$(DESTDIR)@prefix@
26srcdir=@srcdir@
26CC=@CC@ 27CC=@CC@
27CFLAGSCOMPILERSTRICT=-Wno-error -std=c89 -pedantic 28CFLAGSCOMPILERSTRICT=-Wno-error -std=c89 -pedantic
28TARGET_OPTS=-C code -f $(MPS_TARGET_NAME).gmk \ 29COMMON_OPTS=-C code SRCDIR=../$(srcdir)/code \
29 CC='$(CC)' \ 30 CC='$(CC)' CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)'
30 CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)' \ 31TARGET_OPTS=$(COMMON_OPTS) -f $(MPS_TARGET_NAME).gmk \
31 EXTRA_TARGETS="$(EXTRA_TARGETS)" 32 EXTRA_TARGETS="$(EXTRA_TARGETS)"
32XCODEBUILD=xcrun xcodebuild -project code/mps.xcodeproj 33XCODEBUILD=xcrun xcodebuild -project code/mps.xcodeproj
33 34
@@ -41,7 +42,7 @@ clean-make-build:
41 $(MAKE) $(TARGET_OPTS) clean 42 $(MAKE) $(TARGET_OPTS) clean
42 43
43install-make-build: make-install-dirs build-via-make 44install-make-build: make-install-dirs build-via-make
44 $(INSTALL_DATA) code/mps*.h $(prefix)/include/ 45 $(INSTALL_DATA) $(srcdir)/code/mps*.h $(prefix)/include/
45 $(INSTALL_DATA) code/$(MPS_TARGET_NAME)/cool/mps.a $(prefix)/lib/libmps-debug.a 46 $(INSTALL_DATA) code/$(MPS_TARGET_NAME)/cool/mps.a $(prefix)/lib/libmps-debug.a
46 $(INSTALL_DATA) code/$(MPS_TARGET_NAME)/hot/mps.a $(prefix)/lib/libmps.a 47 $(INSTALL_DATA) code/$(MPS_TARGET_NAME)/hot/mps.a $(prefix)/lib/libmps.a
47 for PROGRAM in $(EXTRA_TARGETS); do $(INSTALL_PROGRAM) code/$(MPS_TARGET_NAME)/hot/$$PROGRAM $(prefix)/bin/$$PROGRAM; done 48 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
60 $(INSTALL_DATA) code/xc/Release/libmps.a $(prefix)/lib/libmps.a 61 $(INSTALL_DATA) code/xc/Release/libmps.a $(prefix)/lib/libmps.a
61 for PROGRAM in $(EXTRA_TARGETS); do $(INSTALL_PROGRAM) code/xc/Release/$$PROGRAM $(prefix)/bin/$$PROGRAM; done 62 for PROGRAM in $(EXTRA_TARGETS); do $(INSTALL_PROGRAM) code/xc/Release/$$PROGRAM $(prefix)/bin/$$PROGRAM; done
62 63
63Makefile: Makefile.in config.status 64Makefile: $(srcdir)/Makefile.in config.status
64 ./config.status Makefile 65 ./config.status Makefile
65 66
66clean: @CLEAN_TARGET@ 67clean: @CLEAN_TARGET@
67 68
68config.status: configure 69config.status: $(srcdir)/configure
69 70
70configure: configure.ac 71$(srcdir)/configure: $(srcdir)/configure.ac
71 autoreconf -vif 72 autoreconf -vif $(srcdir)
72 73
73distclean: clean 74distclean: clean
74 rm -rf autom4te.cache/ config.log config.status Makefile 75 rm -rf autom4te.cache/ config.log config.status Makefile
@@ -82,14 +83,12 @@ install: @INSTALL_TARGET@
82 83
83test-make-build: 84test-make-build:
84 $(MAKE) $(TARGET_OPTS) testci testratio testscheme 85 $(MAKE) $(TARGET_OPTS) testci testratio testscheme
85 $(MAKE) -C code -f anan$(MPS_BUILD_NAME).gmk VARIETY=cool \ 86 $(MAKE) $(COMMON_OPTS) \
86 CC='$(CC)' \ 87 -f anan$(MPS_BUILD_NAME).gmk VARIETY=cool \
87 CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)' \
88 clean-testansi 88 clean-testansi
89 $(MAKE) -C code -f anan$(MPS_BUILD_NAME).gmk VARIETY=cool \ 89 $(MAKE) $(COMMON_OPTS) \
90 CC='$(CC)' \ 90 -f anan$(MPS_BUILD_NAME).gmk VARIETY=cool \
91 CFLAGS="-DCONFIG_POLL_NONE" \ 91 CFLAGS="-DCONFIG_POLL_NONE" \
92 CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)' \
93 clean-testpollnone 92 clean-testpollnone
94 93
95test-xcode-build: 94test-xcode-build:
diff --git a/mps/code/comm.gmk b/mps/code/comm.gmk
index cac85c4ee6a..37610d71e3f 100644
--- a/mps/code/comm.gmk
+++ b/mps/code/comm.gmk
@@ -69,6 +69,9 @@ ifndef CFLAGSOPT
69error "comm.gmk: CFLAGSOPT not defined" 69error "comm.gmk: CFLAGSOPT not defined"
70endif 70endif
71 71
72ifdef SRCDIR
73VPATH=$(SRCDIR)
74endif
72 75
73# TELEMETRY TARGETS 76# TELEMETRY TARGETS
74 77
diff --git a/mps/configure.ac b/mps/configure.ac
index 0cbf640fdcb..18c8a1494c0 100644
--- a/mps/configure.ac
+++ b/mps/configure.ac
@@ -193,6 +193,20 @@ AC_SUBST(LDFLAGS)
193AC_SUBST(CPPFLAGS) 193AC_SUBST(CPPFLAGS)
194AC_CONFIG_FILES(Makefile example/scheme/Makefile) 194AC_CONFIG_FILES(Makefile example/scheme/Makefile)
195 195
196AC_CONFIG_COMMANDS(
197 [gmk],
198 [case $srcdir in
199 .) # in-place build
200 ;;
201 *) echo "copying .gmk files"
202 (cd $srcdir &&
203 cp --parents code/*.gmk \
204 tool/testcases.txt tool/testrun.sh \
205 example/scheme/*.scm \
206 $ac_pwd)
207 ;;
208 esac])
209
196AC_OUTPUT 210AC_OUTPUT
197 211
198echo 1>&2 "CONFIGURE/MAKE IS NOT THE BEST WAY TO BUILD THE MPS 212echo 1>&2 "CONFIGURE/MAKE IS NOT THE BEST WAY TO BUILD THE MPS
diff --git a/mps/example/scheme/Makefile.in b/mps/example/scheme/Makefile.in
index 77ed1f4f0e6..3ee9e473abe 100644
--- a/mps/example/scheme/Makefile.in
+++ b/mps/example/scheme/Makefile.in
@@ -4,7 +4,9 @@
4 4
5CFLAGS = @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ -std=c99 5CFLAGS = @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ -std=c99
6 6
7MPS = ../../code 7MPS = @srcdir@/../../code
8
9VPATH = @srcdir@
8 10
9TARGETS = scheme-malloc scheme scheme-advanced 11TARGETS = scheme-malloc scheme scheme-advanced
10 12
@@ -15,7 +17,6 @@ all: $(TARGETS)
15$(TARGETS): %: %.c Makefile 17$(TARGETS): %: %.c Makefile
16 $(CC) $(CFLAGS) -o $@ -I $(MPS) $< $(MPS)/mps.c 18 $(CC) $(CFLAGS) -o $@ -I $(MPS) $< $(MPS)/mps.c
17 19
18
19scheme-boehm: %: %.c Makefile 20scheme-boehm: %: %.c Makefile
20 $(CC) $(CFLAGS) -o $@ $< -lgc 21 $(CC) $(CFLAGS) -o $@ $< -lgc
21 22