1- BUILDROOT = .
1+ BUILDROOT ?= $( CURDIR )
22
33ifndef CONFIG
44 CONFIG =Release
55endif
66
77ifeq ($(CONFIG ) ,Debug)
88CPPFLAGS = -g -Wall -Wcpp -Wunused-function -DDEBUG -DUSE_FULL_ASSERT
9- ASFLAGS = -g
9+ ASFLAGS = -g
1010endif
1111
1212ifeq ($(CONFIG ) ,Release)
1313CPPFLAGS = -O2
1414endif
1515
16+ DEPS = $(BUILD ) /patch.cpp $(BUILD ) /patch.h
17+
18+ ifdef FAUST
19+ # options for FAUST compilation
20+ PATCHNAME ?= $(FAUST )
21+ PATCHCLASS ?= $(PATCHNAME ) Patch
22+ PATCHFILE ?= $(PATCHNAME ) Patch.hpp
23+ DEPS += $(BUILD ) /$(PATCHFILE )
24+ else ifdef HEAVY
25+ # options for Heavy PD compilation
26+ PATCHNAME ?= $(HEAVY )
27+ PATCHCLASS ?= HeavyPatch
28+ PATCHFILE ?= HeavyPatch.hpp
29+ DEPS += $(HEAVYDIR ) /Heavy_owl.h
30+ HEAVYFILE ?= $(HEAVY ) .pd
31+ HEAVYNAME ?= owl
32+ HEAVYDIR ?= $(BUILD ) /HeavySource
33+ CPPFLAGS += -I$(HEAVYDIR )
34+ CPPFLAGS += -D__unix__ -DHV_SIMD_NONE
35+ vpath % .c $(HEAVYDIR )
36+ else
37+ # options for C++ compilation
1638PATCHNAME ?= "Template"
1739PATCHCLASS ?= $(PATCHNAME ) Patch
1840PATCHFILE ?= $(PATCHNAME ) Patch.hpp
41+ endif
42+
1943PATCHIN ?= 2
2044PATCHOUT ?= 2
2145SLOT ?= 0
@@ -31,7 +55,7 @@ CPPFLAGS += -fpie
3155CPPFLAGS += -fdata-sections
3256CPPFLAGS += -ffunction-sections
3357# CPPFLAGS += -munaligned-access
34- CPPFLAGS += -mno-unaligned-access
58+ CPPFLAGS += -mno-unaligned-access
3559# CPPFLAGS += -mlong-calls
3660
3761# CPPFLAGS += -mpic-data-is-text-relative
@@ -78,14 +102,6 @@ vpath %.c $(PATCHSOURCE)
78102vpath % .s $(PATCHSOURCE )
79103vpath % .c Libraries/syscalls
80104
81- # Heavy
82- HEAVYFILE ?= $(PATCHNAME ) .pd
83- HEAVYNAME = owl
84- HEAVYDIR = $(BUILD ) /HeavySource
85- CPPFLAGS += -I$(HEAVYDIR )
86- CPPFLAGS += -D__unix__ -DHV_SIMD_NONE
87- vpath % .c $(HEAVYDIR )
88-
89105# emscripten
90106EMCC = emcc
91107EMCCFLAGS ?= -fno-rtti -fno-exceptions # -std=c++11
@@ -111,7 +127,8 @@ all: patch
111127include $(BUILDROOT ) /libs.mk
112128include $(BUILDROOT ) /common.mk
113129
114- .PHONY : .FORCE clean realclean run store faust heavy online docs
130+ .PHONY : .FORCE clean realclean run store online docs
131+
115132.FORCE :
116133 @echo Building patch $(PATCHNAME )
117134
@@ -121,14 +138,14 @@ $(BUILD)/patch.cpp: .FORCE
121138$(BUILD ) /patch.h : .FORCE
122139 @echo " #include \" $( PATCHFILE) \" " > $(BUILD ) /patch.h
123140
124- $(BUILD ) /PatchProgram.o : $(SOURCE ) /PatchProgram.cpp $(BUILD ) /patch.h $(BUILD ) /patch.cpp
125- @$(CXX ) -c $(CPPFLAGS ) $(CXXFLAGS ) $(SOURCE ) /PatchProgram.cpp -o $@
126- @$(CXX ) -MM -MT" $@ " $(CPPFLAGS ) $(CXXFLAGS ) $(SOURCE ) /PatchProgram.cpp > $(@:.o=.d )
127-
128141$(BUILD ) /startup.o : .FORCE
129142 @echo ' .string "' $(PATCHNAME ) ' "' > $(BUILD ) /progname.s
130143 @$(CC ) -c $(CPPFLAGS ) $(CFLAGS ) $(SOURCE ) /startup.s -o $@
131144
145+ $(BUILD ) /PatchProgram.o : $(SOURCE ) /PatchProgram.cpp $(DEPS )
146+ @$(CXX ) -c $(CPPFLAGS ) $(CXXFLAGS ) $(SOURCE ) /PatchProgram.cpp -o $@
147+ @$(CXX ) -MM -MT" $@ " $(CPPFLAGS ) $(CXXFLAGS ) $(SOURCE ) /PatchProgram.cpp > $(@:.o=.d )
148+
132149$(BUILD ) /patch.elf : $(PATCH_OBJS ) $(OBJS ) $(LDSCRIPT )
133150 @$(LD ) $(LDFLAGS ) -o $@ $(PATCH_OBJS ) $(OBJS ) $(LDLIBS )
134151
@@ -142,7 +159,7 @@ $(BUILD)/%.syx: $(BUILD)/%.bin
142159 @$(FIRMWARESENDER ) -q -in $< -save $@
143160
144161$(BUILD ) /% Patch.hpp : $(PATCHSOURCE ) /% .dsp
145- @cd $(BUILD ) && faust2owl ../ $<
162+ @cd $(BUILD ) && faust2owl $<
146163
147164size : $(BUILD ) /patch.elf $(BUILD ) /patch.bin
148165 @$(SIZE ) $(BUILD ) /patch.elf
@@ -165,25 +182,21 @@ online:
165182 @echo " $( ONLINE_INCLUDES) " > $(BUILD ) /patch.h
166183 @echo " $( ONLINE_REGISTER) " > $(BUILD ) /patch.cpp
167184 @echo ' .string "OnlineCompiler"' > $(BUILD ) /progname.s
168- @make $(BUILD ) /patch.syx
185+ @$( MAKE ) $(BUILD ) /patch.syx
169186 @cp $(BUILD ) /patch.syx $(BUILD ) /online.syx
170187
171- web : $(EMCC_SRC ) $(BUILD ) /patch.h $( BUILD ) /patch.cpp
188+ web : $(EMCC_SRC ) $(DEPS )
172189 @$(EMCC ) $(EMCCFLAGS ) $(EMCC_SRC ) -o $(BUILD ) /patch.js
173190
174191$(HEAVYDIR ) /_main.pd : $(PATCHSOURCE ) /$(HEAVYFILE )
175192 @mkdir -p $(BUILD ) /HeavySource
176193 @cp -f $(PATCHSOURCE ) /* .pd $(BUILD ) /HeavySource
177194 @cp -f $< $@
178195
179- $(HEAVYDIR ) /Heavy_owl.h : $(BUILD ) /HeavySource /_main.pd
196+ $(HEAVYDIR ) /Heavy_owl.h : $(HEAVYDIR ) /_main.pd
180197 @python ./Tools/Heavy/uploader.py $(BUILD ) /HeavySource -g c -n $(HEAVYNAME ) -o $(HEAVYDIR )
181198
182199heavy : $(HEAVYDIR ) /Heavy_owl.h
183200 @$(eval HEAVY_SRC = $(wildcard $(HEAVYDIR ) /* .c) )
184- @$(eval PATCH_OBJS += $(addprefix $(BUILD ) /, $(notdir $(HEAVY_SRC:.c=.o ) ) ) )
185- @$(eval PATCHCLASS ?= HeavyPatch)
186- @$(eval PATCHFILE ?= HeavyPatch.hpp)
201+ @$(eval PATCH_OBJS += $(addprefix $(HEAVYDIR ) /, $(notdir $(HEAVY_SRC:.c=.o ) ) ) )
187202 @make $(PATCH_OBJS )
188-
189- faust : $(BUILD ) /$(PATCHFILE )
0 commit comments