diff --git a/mps/src/gc.gmk b/mps/src/gc.gmk index 2c6c1f8a0b5..6192b1ffa16 100644 --- a/mps/src/gc.gmk +++ b/mps/src/gc.gmk @@ -1,7 +1,7 @@ # # GENERIC BUILD.GC MAKEFILE FRAGMENT # -# $HopeName: MMsrc/!gc.gmk(trunk.2)$ +# $HopeName: MMsrc/!gc.gmk(trunk.3)$ # # Copyright (C) 1995 Harlequin Group, all rights reserved # @@ -17,7 +17,9 @@ # the compiler, e.g. "-DOS_SUNOS -DARCH_SPARC -DBUILD_GCC" # STD list of sources which make up the "std" part for this platform # MPM as above for the "mpm" part +# MPMS assembler sources for the "mpm" part # AMC as above for the "amc" part +# DW as above for the "dw" part # TESTLIB as above for the "testlib" part # LIBS extra libraries to include in tests (usually "-lm") # NOISY if defined and non-empty, causes commands to be emitted @@ -58,6 +60,9 @@ endif ifndef AMC error "gc.gmk: AMC not defined" endif +ifndef DW +error "gc.gmk: DW not defined" +endif ifndef TESTLIB error "gc.gmk: TESTLIB not defined" endif @@ -102,15 +107,18 @@ CFDEVEL = \ # These map the source file lists onto object files and dependency files # in the platform/variety directory. +# # %%PART: Add a new macro which expands to the files included in the part. ifdef VARIETY STDOBJ = $(STD:%.c=$(PFM)/$(VARIETY)/%.o) STDDEP = $(STD:%.c=$(PFM)/$(VARIETY)/%.d) -MPMOBJ = $(MPM:%.c=$(PFM)/$(VARIETY)/%.o) +MPMOBJ = $(MPM:%.c=$(PFM)/$(VARIETY)/%.o) $(MPMS:%.s=$(PFM)/$(VARIETY)/%.o) MPMDEP = $(MPM:%.c=$(PFM)/$(VARIETY)/%.d) AMCOBJ = $(AMC:%.c=$(PFM)/$(VARIETY)/%.o) AMCDEP = $(AMC:%.c=$(PFM)/$(VARIETY)/%.d) +DWOBJ = $(DW:%.c=$(PFM)/$(VARIETY)/%.o) +DWDEP = $(DW:%.c=$(PFM)/$(VARIETY)/%.d) TESTLIBOBJ = $(TESTLIB:%.c=$(PFM)/$(VARIETY)/%.o) TESTLIBDEP = $(TESTLIB:%.c=$(PFM)/$(VARIETY)/%.d) endif @@ -134,14 +142,14 @@ endif # "all" builds all varieties of all targets # %%TARGET: Add the target to the all dependencies. -all: amcdev lockcov stdcover mpmstres std.a +all: dwstress amcdev lockcov stdcover mpmstres std.a # These convenience targets allow one to type "make foo" to build target # foo in all varieties. # # %%TARGET: Add a pseudo-target for the new target here. -amcdev lockcov stdcover mpmstres std.a: phony +dwstress amcdev lockcov stdcover mpmstres std.a: phony $(MAKE) -f $(PFM).gmk TARGET=$@ target # "clean" removes the directory containing the build results for the platform. @@ -194,6 +202,9 @@ $(PFM)/$(VARIETY)/lockcov: $(PFM)/$(VARIETY)/lockcov.o \ $(PFM)/$(VARIETY)/amcdev: $(PFM)/$(VARIETY)/amcdev.o \ $(MPMOBJ) $(STDOBJ) $(AMCOBJ) $(TESTLIBOBJ) +$(PFM)/$(VARIETY)/dwstress: $(PFM)/$(VARIETY)/dwstress.o \ + $(MPMOBJ) $(STDOBJ) $(AMCOBJ) $(DWOBJ) $(TESTLIBOBJ) + $(PFM)/$(VARIETY)/std.a: $(STDOBJ) $(PFM)/$(VARIETY)/mpm.a: $(MPMOBJ) @@ -215,6 +226,12 @@ $(PFM)/$(VARIETY)/%.o: %.c test -d $(PFM)/$(VARIETY) || mkdir $(PFM)/$(VARIETY) gcc $(CFLAGS) -c -o $@ $< +$(PFM)/$(VARIETY)/%.o: %.s + $(ECHO) "$(PFM): $@" + test -d $(PFM) || mkdir $(PFM) + test -d $(PFM)/$(VARIETY) || mkdir $(PFM)/$(VARIETY) + gcc $(CFLAGS) -c -o $@ $< + # Dependencies # # These are included into _this_ makefile (see below). GNU make does the