1VERSION = 0.9.26
2
3PREFIX = /usr/local
4DESTDIR =
5
6CXX ?= g++
7STRIP ?= strip
8
9ifdef DEBUG
10OPTS = -fPIC -DPIC -g -DDEBUG
11else
12# OPTS = -O2 -Wall -fPIC -DPIC
13OPTS = -O3 -ffast-math -funroll-loops -Wall -fPIC -DPIC -fdata-sections -ffunction-sections
14ifndef MACOS
15LDFLAGS += -Wl,--strip-all
16endif
17endif
18
19CXXFLAGS += $(OPTS) -I../.. -fvisibility=hidden -fvisibility-inlines-hidden
20LDFLAGS += -fdata-sections -ffunction-sections
21ifdef MACOS
22LDFLAGS += -dynamiclib -Wl,-dead_strip -Wl,-dead_strip_dylibs
23else
24LDFLAGS += -shared -Wl,--gc-sections -Wl,--no-undefined
25endif
26
27SOURCES = ../../Noisegate.cc ../../dsp/polynomials.cc interface.cc
28OBJECTS = $(SOURCES:.cc=.o)
29
30PLUG   = Noisegate
31BUNDLE = mod-caps-$(PLUG).lv2
32ifndef LV2_DEST
33LV2DEST = $(PREFIX)/lib/lv2/$(BUNDLE)
34else
35LV2DEST = $(LV2_DEST)/$(BUNDLE)
36endif
37
38# targets following -------------------------------------------------------------
39
40all: .depend $(PLUG).so
41
42$(PLUG).so: $(OBJECTS)
43	$(CXX) $(OBJECTS) $(LDFLAGS) -o $@
44
45.cc.s:
46	$(CXX) $< $(CXXFLAGS) -S
47
48.cc.o: .depend
49	$(CXX) $< $(CXXFLAGS) -o $@ -c
50
51install: all
52	install -d $(DESTDIR)$(LV2DEST)
53	install -m 644 *.ttl *.so $(DESTDIR)$(LV2DEST)
54	cp -r modgui $(DESTDIR)$(LV2DEST)
55
56uninstall:
57	-rm -rf $(LV2DEST)
58
59clean:
60	rm -f $(OBJECTS) $(PLUG).so *.s .depend
61
62.depend: $(SOURCES)
63	$(CXX) -MM $(CXXFLAGS) $(SOURCES) > .depend
64
65-include .depend
66