/
Makefile
71 lines (54 loc) · 1.81 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
include ../common.mak
LOADLIBES = -lm
targets=overdrive.o
ifeq ($(LV2AVAIL), yes)
targets+=lv2
LV2NAME=b_overdrive
endif
ifeq ($(shell pkg-config --exists liblo && echo yes), yes)
CFLAGS+=-DHAVE_LIBLO `pkg-config --cflags liblo`
LOADLIBES+=`pkg-config --libs liblo`
endif
ifeq ($(shell pkg-config --exists jack && echo yes), yes)
targets+=jboverdrive
binaries+=jboverdrive
CFLAGS+=-DHAVE_JACK `pkg-config --cflags jack`
LOADLIBES+=`pkg-config --libs jack`
endif
OVMSRC=\
overmaker.c \
filterTools.c \
ovt_biased.c
all: $(targets)
jboverdrive: jboverdrive.c overdrive.o
lv2: manifest.ttl $(LV2NAME)$(LIB_EXT)
manifest.ttl:
sed "s/@LV2NAME@/$(LV2NAME)/;s/@LIB_EXT@/$(LIB_EXT)/" manifest.ttl.in > manifest.ttl
$(LV2NAME)$(LIB_EXT): lv2.c overdrive.o
$(CC) -o $(LV2NAME)$(LIB_EXT) $(CFLAGS) -shared $(LV2LDFLAGS) lv2.c overdrive.o
overdrive.o: overmaker overdrive.h ../src/cfgParser.h ../src/midi.h
./overmaker > overdrive.c
$(CC) -Wall $(OPTIMIZATIONS) -fPIC -c -o overdrive.o overdrive.c
overmaker:$(OVMSRC) overmakerdefs.h
$(CC) -o $(@) $(OVMSRC) -lm
install: $(targets)
ifneq ($(strip $(binaries)),)
-install -d $(DESTDIR)$(bindir)
install -m755 $(binaries) $(DESTDIR)$(bindir)
endif
ifneq ($(strip $(LV2NAME)),)
install -d $(DESTDIR)$(lv2dir)/$(LV2NAME)
install -m755 $(LV2NAME)$(LIB_EXT) $(DESTDIR)$(lv2dir)/$(LV2NAME)
install -m644 manifest.ttl $(LV2NAME).ttl $(DESTDIR)$(lv2dir)/$(LV2NAME)
endif
uninstall:
ifneq ($(strip $(binaries)),)
rm -f $(foreach fname,$(binaries),$(DESTDIR)$(bindir)/$(fname))
-rmdir $(DESTDIR)$(bindir)
endif
rm -f $(DESTDIR)$(lv2dir)/$(LV2NAME)/*.ttl
rm -f $(DESTDIR)$(lv2dir)/$(LV2NAME)/$(LV2NAME)$(LIB_EXT)
-rmdir $(DESTDIR)$(lv2dir)/$(LV2NAME)
clean:
rm -f *.o jboverdrive overmaker manifest.ttl $(LV2NAME)$(LIB_EXT) overdrive.c
.PHONY: clean all install uninstall lv2