diff options
| author | Helmut Eller | 2025-09-22 16:56:02 +0200 |
|---|---|---|
| committer | Helmut Eller | 2025-09-22 16:56:02 +0200 |
| commit | 1507199e3573d7786991d181d06885d82999c3b2 (patch) | |
| tree | 04732e313a5ff1eef5cc0159bc483225158fe7ed | |
| parent | a97f6d888fcb34b416a64724e67b7d7e77df6f68 (diff) | |
| download | emacs-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.in | 27 | ||||
| -rw-r--r-- | mps/code/comm.gmk | 3 | ||||
| -rw-r--r-- | mps/configure.ac | 14 | ||||
| -rw-r--r-- | mps/example/scheme/Makefile.in | 5 |
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@ | |||
| 23 | MPS_TARGET_NAME=$(MPS_OS_NAME)$(MPS_ARCH_NAME)$(MPS_BUILD_NAME) | 23 | MPS_TARGET_NAME=$(MPS_OS_NAME)$(MPS_ARCH_NAME)$(MPS_BUILD_NAME) |
| 24 | EXTRA_TARGETS=@EXTRA_TARGETS@ | 24 | EXTRA_TARGETS=@EXTRA_TARGETS@ |
| 25 | prefix=$(DESTDIR)@prefix@ | 25 | prefix=$(DESTDIR)@prefix@ |
| 26 | srcdir=@srcdir@ | ||
| 26 | CC=@CC@ | 27 | CC=@CC@ |
| 27 | CFLAGSCOMPILERSTRICT=-Wno-error -std=c89 -pedantic | 28 | CFLAGSCOMPILERSTRICT=-Wno-error -std=c89 -pedantic |
| 28 | TARGET_OPTS=-C code -f $(MPS_TARGET_NAME).gmk \ | 29 | COMMON_OPTS=-C code SRCDIR=../$(srcdir)/code \ |
| 29 | CC='$(CC)' \ | 30 | CC='$(CC)' CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)' |
| 30 | CFLAGSCOMPILERSTRICT='$(CFLAGSCOMPILERSTRICT)' \ | 31 | TARGET_OPTS=$(COMMON_OPTS) -f $(MPS_TARGET_NAME).gmk \ |
| 31 | EXTRA_TARGETS="$(EXTRA_TARGETS)" | 32 | EXTRA_TARGETS="$(EXTRA_TARGETS)" |
| 32 | XCODEBUILD=xcrun xcodebuild -project code/mps.xcodeproj | 33 | XCODEBUILD=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 | ||
| 43 | install-make-build: make-install-dirs build-via-make | 44 | install-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 | ||
| 63 | Makefile: Makefile.in config.status | 64 | Makefile: $(srcdir)/Makefile.in config.status |
| 64 | ./config.status Makefile | 65 | ./config.status Makefile |
| 65 | 66 | ||
| 66 | clean: @CLEAN_TARGET@ | 67 | clean: @CLEAN_TARGET@ |
| 67 | 68 | ||
| 68 | config.status: configure | 69 | config.status: $(srcdir)/configure |
| 69 | 70 | ||
| 70 | configure: configure.ac | 71 | $(srcdir)/configure: $(srcdir)/configure.ac |
| 71 | autoreconf -vif | 72 | autoreconf -vif $(srcdir) |
| 72 | 73 | ||
| 73 | distclean: clean | 74 | distclean: 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 | ||
| 83 | test-make-build: | 84 | test-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 | ||
| 95 | test-xcode-build: | 94 | test-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 | |||
| 69 | error "comm.gmk: CFLAGSOPT not defined" | 69 | error "comm.gmk: CFLAGSOPT not defined" |
| 70 | endif | 70 | endif |
| 71 | 71 | ||
| 72 | ifdef SRCDIR | ||
| 73 | VPATH=$(SRCDIR) | ||
| 74 | endif | ||
| 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) | |||
| 193 | AC_SUBST(CPPFLAGS) | 193 | AC_SUBST(CPPFLAGS) |
| 194 | AC_CONFIG_FILES(Makefile example/scheme/Makefile) | 194 | AC_CONFIG_FILES(Makefile example/scheme/Makefile) |
| 195 | 195 | ||
| 196 | AC_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 | |||
| 196 | AC_OUTPUT | 210 | AC_OUTPUT |
| 197 | 211 | ||
| 198 | echo 1>&2 "CONFIGURE/MAKE IS NOT THE BEST WAY TO BUILD THE MPS | 212 | echo 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 | ||
| 5 | CFLAGS = @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ -std=c99 | 5 | CFLAGS = @CFLAGS@ @CPPFLAGS@ @LDFLAGS@ -std=c99 |
| 6 | 6 | ||
| 7 | MPS = ../../code | 7 | MPS = @srcdir@/../../code |
| 8 | |||
| 9 | VPATH = @srcdir@ | ||
| 8 | 10 | ||
| 9 | TARGETS = scheme-malloc scheme scheme-advanced | 11 | TARGETS = 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 | |||
| 19 | scheme-boehm: %: %.c Makefile | 20 | scheme-boehm: %: %.c Makefile |
| 20 | $(CC) $(CFLAGS) -o $@ $< -lgc | 21 | $(CC) $(CFLAGS) -o $@ $< -lgc |
| 21 | 22 | ||