-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
151 lines (135 loc) · 3.1 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# srv/Makefile
# This public release of the source code excludes
# the Chant and JmaxTest actors, which incorporated source code copyrighted by IRCAM,
# and the SpacePad actor, which incorporated source code copyrighted by Ascension Technology.
VERSION = 4.2.1
TOPDIR = $(PWD)
include Rules.common
ifeq "$(PLATFORMBASE)" "VSS_WINDOWS"
TARGET := vss.exe
else
TARGET := vss
endif
all: $(TARGET)
# noninteractive just-make-a-beep test
sane:
@$(AUDTEST) sanity.aud
OBJSRV := \
misc.o \
parseActorMessage.o \
platform.o \
VActor.o \
VAlgorithm.o \
VGenActor.o \
VHandler.o \
vssMsg.o \
vssSrv.o \
ifeq "$(PLATFORMBASE)" "VSS_WINDOWS"
OBJSRV += vssWindows.o winplatform.o
endif
ifeq "$(PLATFORMBASE)" "VSS_IRIX"
OBJSRV += underflow.o
endif
SUBDIRS := \
add \
analog \
analysis \
basic \
basiciter \
chua \
control \
crowd \
debug \
delay \
distance \
env \
filter \
fm \
gran \
input \
later \
logistic \
map \
mixer \
msg \
noise \
osc \
particle \
parallelport \
penta \
piano \
pnoise \
process \
reverb \
ring \
samp \
seq \
shimmer \
sm \
stereo \
stk4 \
tb303 \
thresh \
SUBLIBS := \
add/add.a \
analog/analog.a \
analysis/analyzer.a \
basic/basic.a \
basiciter/basicIterator.a \
chua/chua.a \
control/control.a \
crowd/crowd.a \
debug/debug.a \
delay/delay.a \
distance/distance.a \
env/env.a \
filter/filter.a \
fm/fm.a \
gran/gran.a \
input/input.a \
later/later.a \
logistic/logistic.a \
map/map.a \
mixer/mixer.a \
msg/msgGroup.a \
noise/noise.a \
osc/opensoundctrl.a \
particle/particle.a \
parallelport/ledlpt.a \
penta/pentatonic.a \
piano/piano.a \
pnoise/pnoise.a \
process/process.a \
reverb/reverb.a \
ring/ring.a \
samp/samp.a \
seq/seq.a \
shimmer/shimmer.a \
sm/sm.a \
stereo/stereo.a \
stk4/stk.a \
tb303/tb303.a \
thresh/thresh.a
# CXXFLAGS="$(CFLAGS)" would fail because ./configure clobbers that.
# Fake it by making CFLAGS part of what ./configure thinks is the compiler.
stk4/stk.a:
cd stk-4.4.4 && ./configure CXX="$(CC) $(CFLAGS)" && cd src && make
cd stk4 && make
now=\"$(shell date +"%Y-%m-%d\ %H:%M")\"
# 'T' deliberately omitted
# Explicity make inside each subdir, to get its ./.depend.
# gmake passes down "-j" implicitly via $(MAKEFLAGS), but not "-j <number>".
# ($(MAKE) ... & ) would build subdirs in parallel, to better exploit all cores,
# but then the linker would run before */*.a has been built.
$(TARGET): vssBuild.c++ $(OBJSRV) $(SUBDIRS) stk4/stk.a
@set -e; for i in $(SUBDIRS); do ( $(MAKE) -s -C $$i | grep -v 'Nothing to be done for' || true ); done
$(CC) -o $@ $(CFLAGS) -D__TIMESTAMP_ISO8601__=$(now) vssBuild.c++ $(OBJSRV) $(SUBLIBS) $(VSSLIBS) $(LDFLAGS)
ifeq "$(PLATFORMBASE)" "VSS_IRIX"
strip -fs $@
endif
clean:
-@rm -f stk-4.4.4/src/{Debug,Release}/*
-@(cd stk-4.4.4; if [ -f Makefile ]; then ( make distclean | grep -v 'directory' | grep -v /bin/rm | grep -v ' make ' || true ); fi; )
-rm -rf $(TARGET) *.o */*.o */*.a .depend */.depend
-include $(patsubst %.o,.depend/%.d,$(OBJSRV))
.PHONY: all clean sane $(SUBDIRS)