Mercurial > hg > piper-vamp-js
comparison Makefile.inc @ 122:6d651bfc93b9
Some build fixes (especially: use of realpath for object files meant only those files that already existed in the original directories were being considered as targets)
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Thu, 10 Nov 2016 13:35:55 +0000 |
parents | d1a99d44812b |
children | a8d054ec22ac |
comparison
equal
deleted
inserted
replaced
121:d1a99d44812b | 122:6d651bfc93b9 |
---|---|
9 @echo " - build Javascript module using Emscripten" | 9 @echo " - build Javascript module using Emscripten" |
10 @echo "$$ make linux" | 10 @echo "$$ make linux" |
11 @echo " - build native-code module on Linux (mostly for testing)" | 11 @echo " - build native-code module on Linux (mostly for testing)" |
12 @echo "$$ make clean" | 12 @echo "$$ make clean" |
13 @echo " - remove intermediate build files, but not targets" | 13 @echo " - remove intermediate build files, but not targets" |
14 @echo "$$ make distclean" | |
15 @echo " - remove all targets and intermediate build files" | |
14 @echo | 16 @echo |
15 @echo "Note: when switching from one target to another, make clean first" | 17 @echo "Note: when switching from one target to another, make clean first" |
16 @echo | 18 @echo |
17 | 19 |
18 MY_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) | 20 MY_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) |
84 | 86 |
85 OBJDIR := o | 87 OBJDIR := o |
86 | 88 |
87 CXX_OBJECTS := $(CXX_SOURCES:.cpp=.o) | 89 CXX_OBJECTS := $(CXX_SOURCES:.cpp=.o) |
88 C_OBJECTS := $(C_SOURCES:.c=.o) | 90 C_OBJECTS := $(C_SOURCES:.c=.o) |
89 OBJECTS := $(CXX_OBJECTS) $(C_OBJECTS) | 91 ALL_OBJECTS := $(CXX_OBJECTS) $(C_OBJECTS) |
90 OBJECTS := $(addprefix $(OBJDIR)/,$(realpath $(OBJECTS))) | 92 OBJECTS := $(addprefix $(OBJDIR)/,$(abspath $(ALL_OBJECTS))) |
91 | 93 |
92 o/%.o: %.cpp | 94 o/%.o: %.cpp |
93 mkdir -p $(dir $@) | 95 mkdir -p $(dir $@) |
94 $(CXX) -c $(INCPATH) $(CXXFLAGS) -o $@ $< | 96 $(CXX) -c $(INCPATH) $(CXXFLAGS) -o $@ $< |
95 | 97 |
97 mkdir -p $(dir $@) | 99 mkdir -p $(dir $@) |
98 $(CC) -c $(INCPATH) $(CFLAGS) -o $@ $< | 100 $(CC) -c $(INCPATH) $(CFLAGS) -o $@ $< |
99 | 101 |
100 $(EM_MODULE): $(OBJECTS) | 102 $(EM_MODULE): $(OBJECTS) |
101 $(CXX) $(OPTFLAGS) -o $@ $^ $(LDFLAGS) && \ | 103 $(CXX) $(OPTFLAGS) -o $@ $^ $(LDFLAGS) && \ |
102 ( echo "if (typeof process === 'object') module.exports=$(MODULE_SYMBOL);" >> $(EM_MODULE) ) | 104 ( echo "if (typeof process === 'object') module.exports=$(EM_MODULE_SYMBOL);" >> $(EM_MODULE) ) |
103 | 105 |
104 $(SO_MODULE): $(OBJECTS) | 106 $(SO_MODULE): $(OBJECTS) |
105 $(CXX) -o $@ $^ $(LDFLAGS) | 107 $(CXX) -o $@ $^ $(LDFLAGS) |
106 | 108 |
107 clean: | 109 clean: |
108 rm -f $(OBJECTS) | 110 rm -f $(OBJECTS) |
111 | |
112 distclean: clean | |
113 rm -f $(EM_MODULE) $(SO_MODULE) |