File: Makefile

package info (click to toggle)
csound 1%3A4.23f12-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 6,132 kB
  • ctags: 17,345
  • sloc: ansic: 101,063; cpp: 7,730; perl: 335; makefile: 318; tcl: 82
file content (473 lines) | stat: -rw-r--r-- 18,675 bytes parent folder | download
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
#								Csound Makefile
# edit the following definitions according to need:

INCLUDE	= $(DESTDIR)/usr/include
LIB	= $(DESTDIR)/usr/lib
DEST	= $(DESTDIR)/usr/bin
MAN	= $(DESTDIR)/usr/share/man
MAN1	= $(MAN)/man1
CAT1	= $(MAN)/cat1
# these directories must exist for stages beyond 'make csound'

CDEP =
COBS =	$(COBJS)
#CC = cc
# choose either -
#	CDEP =			for UNIX
#	COBS = $(COBJS)
#	CC = cc
# or -
#	CDEP = $(CRFILE)	for MSDOS
#	COBS = @$(CDEP)
#	CC = gcc
#	.c.o:
#		$(CC) $(CFLAGS) -c $*.c -o $@

DEFINES = -DWINDOWS -DRTAUDIO -DSFIRCAM -DSYS5 -DLINUX -DPIPES -DMACROS -DIV_SCHED -DHAVE_FLTK
# choose any of -
#	-DSYS5	    invoke System 5 headers (e.g. 'string.h' for 'strings.h')
#	-DWINDOWS   include window system calls (X11, SGI, or FG graphics)
#	-DRTAUDIO   include real-time sound i/o via DEC or other audio-board
#	-DHAVE_FLTK include FLTK widgets (requires FLTK 1.1.x)
#	-DDOSGCC    for PC, if above defined CC = gcc compiler under MSDOS
#	-DHPUX -D_HPUX_SOURCE	for HP compilation under HP Unix
#	-DPIPES     if system supports popen and pclose calls
# at most one of -
#	-DSFIRCAM   read/write IRCAM-format soundfiles, with 1024-byte header;
#	-DSFSUN41   read/write SUN4.1-format soundfiles, with their own header;
#	-DNeXT      read/write NeXT-format soundfiles, with their own header;
#			(else read/write sound with no headers)
# and at most one of -
#	-DDEC		send rtaudio calls to DEC audio device handler
#	-DSGI		send rtaudio calls to SGI audio device handler
#	-Dsun		send rtaudio calls to sun audio device handler
#	-Dsol		send rtaudio calls to solaris audio handler
#	-DHP		send rtaudio calls to HP  audio device handler
#	-DLINUX		send rtaudio calls to Linux audio device handler
# Defining LINUX also enables an additional command-line option (-V <volume>)
# and includes an extra header in 'midirecv.c'.
# If LINUX is defined, but the target is Linux on a big-endian architecture
# (e.g., Linux on SPARC [not tested]), you should also define -
#       -DLINUX_BE      Linux audio device handler for big-endian samples

# if gcc3.x, use -falign-loops=4 and -falign-jumps=4, else use the old -m style.
GCC32_CFLAGS := $(shell if [ "`stat -c %N /usr/bin/gcc | grep gcc-3`" ] ; then echo -falign-loops=4 -falign-jumps=4; else echo -malign-loops=4 -malign-jumps=4; fi )

# CFLAGS = -Wall -O2 -ffast-math -fomit-frame-pointer -finline-functions -funroll-loops -DWITHx87 $(GCC32_CFLAGS) $(RPM_OPT_FLAGS) $(DEFINES)

CFLAGS = -Wall -O2 -ffast-math -fomit-frame-pointer -finline-functions -funroll-loops $(RPM_OPT_FLAGS) $(DEFINES)

#	-O		Simple optimisation
#	-O2		to be more specific about the optimization level
#	-f		compile single-precision floats (4.3,VAX,DEC-RISC)
# 	-fsingle	as above, for SUN Unix
# 	-float -cckr 	as above, for SGI Unix
#	-f68881		employ the 68881 co-processor
#	-ffpa		employ the SUN fl-pt accelerator
#	-f -DWITHx87	for PC with 80x87 floating-point coprocessor
#	-w -D__STDC__	for PC
#	-Aa		for HP to invoke ANSI C compiler
#	+e		for HPUX rtaudio compilation
#	+x		generate HP inline 68020 and 68881 code
#	+Nd1200		expand SYS5 pass3 tablesize
#	-DWITHx87	for fpt chip on LINUX
#	-march=i586 -mcpu=i686	Recommended for GNU/Linux is PentiumIII/Athlon.#
#			Still not clear for which processor this works
#	-malign-loops=4	Recommended for GNU/Linux
#	-malign-jumps=4	Recommended for GNU/Linux
#       -malign-functions=4
#       -fno-gcse -fno-strict-aliasing    (recommended bug-arounds for gcc 2.9x)
#       -mfancy-math-387                  (may not be necessary, but safe to add)
#       -ffast-math                       produces faster and smaller code, not
#						 fully tested:
#   these produce larger code, but may (or may not) be faster:
#     -fomit-frame-pointer
#     -finline-functions                  (N.B. do not use this with gcc 2.95.2)
#     -funroll-loops                      (unfortunately this option generates
#                                           much larger executables)
#	-I/usr/demo/SOUND		to find SUN4.1 audio includes
#	-I/usr/include/X11R4		to find HP X11 includes, v.4
#	-I/usr/include/sys		to find NeXT malloc.h
#	-I/usr/openwin/include		Solaris openwin interface
#	-I/usr/demo/SOUND/include	Solaris sound interface
#       -I/usr/X11R6/include            non-RedHat distributions of Linux

# uncomment these if HAVE_FLTK was enabled in DEFINES
#
#CXX = g++
CXXFLAGS = -fno-exceptions -fno-rtti ${DEFINES}
FLTKSRC = widgets.cpp
FLTKOBJ = widgets.o
# source and object files for FLTK widgets
#FLTKLIB = -lfltk -lpthread -lg++
#FLTKLIB = /usr/local/lib/libfltk.a /usr/lib/libpthread.a \
#	  /usr/lib/libstdc++-libc6.2-2.a.3

FLTKLIB = `fltk-config --ldflags` -lstdc++ -lpthread

# libraries required by widgets.cpp
#	-lfltk -lpthread -lg++			use dynamic libraries
#
#	/usr/local/lib/libfltk.a		use static libraries (more
#	/usr/lib/libpthread.a			suitable for distribution,
#	/usr/lib/libstdc++-libc6.2-2.a.3	but increases size; the
#						directiories and version
#						numbers are system-dependent)

# 
# Tcl/Tk library -- depends on your distribution 
# 
#TCL-TK_VERSION := $(shell if [ -d /usr/include/tcl8.4 ]; then echo 8.4; else echo 8.3; fi )
#
#TCLLIB = -ltcl$(TCL-TK_VERSION)
#TCLINC = -I/usr/include/tcl$(TCL-TK_VERSION)
#TKLIB = -L/usr/X11R6/lib -ltk$(TCL-TK_VERSION)
#TKINC = -I/usr/include/tcl$(TCL-TK_VERSION)

LIBS =	$(FLTKLIB) -L /usr/X11R6/lib -lX11 $(TCLLIB) $(TKLIB) -lm -ldl
#	-lefence
#	-lm		    		required
#	-lX11				for X window calls
#	-L/usr/lib/X11R4		for HP X11 library, v.4
#	-L$(newlib)			for other special access
#	-lfm_s -lgl_s 			for SGI graphics library
#	fgp.lib				for PC FlashGraphics lib
#	-l881				tell -lm to use 68881
#	-laudio				on SUN, for SFSUN41
#	-laudio				on SGI, to include rt devaudio library
#	-lAlib				on HP, to include rt devaudio library
#	-lmidi				on NeXT, to find the midi support
#	-lbsd				on old LINUX
#	-L/usr/demo/SOUND/lib		on Solaris 2.4
#	-L/usr/X11R6/lib		on LINUX
# note: SuSE 7.3 users should use -ltcl8.3 -ltk8.3, but another
# (probably better) solution is to create symbolic links

WINSRC = winFLTK.cpp FL_graph.cpp
WINOBJ = winFLTK.o FL_graph.o
# ;if WINDOWS enabled in DEFINES, choose one of -
#	winX11.o	for X11 window graphics
#	winSGI.o	for SGI window graphics
#	winFLTK.o and FL_graph.o for `improved' X graphics
#	and many others....winbor, wincwin 

AUDSRC = rtlinux.c LINUXaudio.c
AUDOBJ = rtlinux.o LINUXaudio.o
#AUDSRC = rtalsa.c
#AUDOBJ = rtalsa.o
# ;if RTAUDIO enabled in DEFINES, include one of
#	rtaudio.o		general interface to audio handlers & libraries
#	rtDEC.c		rtSGI.c		rtHP.c		rtSUN.c
#	rtmacintosh.c	rtnext.c	rtlinux.c	rtwin32.c
# and at most one set of -
#	rtDEC.c DECaudio.o DECplay.o	rt_handlers for DECaudio (with -DDEC)
#	rtSGI.c SGIplay.o		rt_handler  for SGIaudio (with -DSGI)
#	rtHP.c HPplay.o		rt_handler  for HP audio (with -DHP)
#	rtSUN.c			for SUN audio lib  (with -Dsun)
#       rtlinux.c LINUXaudio.o  set Linux soundcard parameters (with -DLINUX)
#	rtmacintosh.c		macintosh
#	rtnext.c		NeXT
#	rtwin32.c		Windows 32bit MM library
#	[other things]		device handlers for other hardware

AUDHDR =
# ;if RTAUDIO enabled include
#	DECplay.h		for rtaudio and DECplay (with -DDEC)
# ;else leave blank


# The Csound MAKE can be run in separate stages, or as a single command.
# To create just the 'csound' executable, type
#	make csound
# This module contains most of the functions below as Utility options
# (see the Csound manual), but they are also available as standalones:

# To create the standalone 'hetro', 'lpanal', 'pvanal', type
#	make hetro
#	make lpanal
#	make pvanal
# To create all three standalones, type
#	make anals

# To create standalone 'scot', 'cscore', 'scsort', 'extract', type
#	make scots
#	make cscores
#	make scsort
#	make extract
# To create all four standalones, type
#	make utils1

# To create standalone 'sndinfo', type
#	make sndinfo
# or
#	make utils2

# To create all the above, from 'csound' to 'utils2', type
#	make all

# If you have completed the above, and have defined the INCLUDE, LIB & DEST
# directories, you can now install all the executables in a single command:
#	make install

# do not edit below this line
# --------------------------------------------------------------------------

# macros passed to lower-level Makef files
#	CFLAGS INCLUDE LIB DEST
MAC = "CFLAGS=$(CFLAGS)" "INCLUDE=$(INCLUDE)" "LIB=$(LIB)" "DEST=$(DEST)" "LIBS=$(LIBS)"

MAKE = make -f makef $(MAC)

SHELL = /bin/sh

CSCMS  = cscormai.c natbem.c
CSRC1 =	main.c argdecode.c musmon.c otran.c oload.c rdorch.c express.c
CSRC2 = rdscor.c linevent.c cscore.c cscorfns.c insert.c entry1.c entry2.c aops.c
CSRC3 = midiops.c midirecv.c fgens.c ugens1.c ugens2.c ugens3.c ugens4.c
CSRC4 =	ugens5.c ugens6.c ugens7.c ugens8.c ugens9.c spectra.c disprep.c
CSRC5 =	window.c winascii.c $(WINSRC) hetro.c lpanal.c lptrkfns.c pvanal.c
CSRC6 =	pvoc.c fft.c dsputil.c sndinfo.c sfheader.c soundin.c soundio.c
CSRC7 = ulaw.c aiff.c wave.c ieee80.c filopen.c memalloc.c memfiles.c auxfd.c
CSRC8 = windin.c dumpf.c $(AUDSRC) scot.c scsort.c scxtract.c sread.c sort.c
CSRC9 = extract.c twarp.c swrite.c butter.c grain.c vdelay.c cmath.c follow.c
CSRCA = cvanal.c grain4.c pvinterp.c pvread.c sndwarp.c vpvoc.c hrtferX.c
CSRCB = winEPS.c nlfilt.c opcode.c ugrw1.c ugrw2.c ugensa.c cross2.c dam.c
CSRCC = midiout.c midiops2.c midisend.c wavegde.c filter.c complex.c repluck.c
CSRCD = pluck.c physutil.c physmod.c modal4.c shaker.c fm4op.c diskin.c
CSRCE = pvadd.c moog1.c singwave.c mandolin.c space.c locsig.c dcblockr.c
CSRCF = pvocext.c flanger.c aifc.c lowpassr.c uggab.c biquad.c one_file.c
CSRCG = schedule.c midiops3.c pitch.c getstring.c ugsc.c fout.c sndinfUG.c
CSRCH = pvlook.c sfont.c vbap.c vbap_four.c vbap_eight.c 
CSRCI = vbap_sixteen.c vbap_zak.c control.c bowedbar.c phisem.c sdif.c
CSRCJ = sdif-mem.c babo.c ugmoss.c bbcut.c spat3d.c pvxanal.c mxfft.c
CSRCK = pvsanal.c pstream.c pvfileio.c oscbnk.c oscils.c
CSRCL = wave-terrain.c dnoise.c dnfft.c mididevice.c clfilt.c midiinterop.c
CSRCM = dl_opcodes.c jpff_glue.c namedins.c
CSRCS =	$(CSRC1) $(CSRC2) $(CSRC3) $(CSRC4) $(CSRC5) $(CSRC6) $(CSRC7) \
	$(CSRC8) $(CSRC9) $(CSRCA) $(CSRCB) $(CSRCC) $(CSRCD) $(CSRCE) \
	$(CSRCF) $(CSRCG) $(CSRCH) $(CSRCI) $(CSRCJ) $(CSRCK) $(CSRCL) \
	$(CSRCM) $(FLTKSRC)

CSCM  = cscormai.o natben.o
COBJ1 =	main.o argdecode.o musmon.o otran.o oload.o rdorch.o express.o
COBJ2 = rdscor.o linevent.o cscore.o cscorfns.o insert.o entry1.o entry2.o aops.o
COBJ3 = midiops.o midirecv.o fgens.o ugens1.o ugens2.o ugens3.o ugens4.o
COBJ4 =	ugens5.o ugens6.o ugens7.o ugens8.o ugens9.o spectra.o disprep.o
COBJ5 =	window.o winascii.o $(WINOBJ) hetro.o lpanal.o lptrkfns.o pvanal.o
COBJ6 =	pvoc.o fft.o dsputil.o sndinfo.o sfheader.o soundin.o soundio.o
COBJ7 = ulaw.o aiff.o wave.o ieee80.o filopen.o memalloc.o memfiles.o auxfd.o
COBJ8 = windin.o dumpf.o $(AUDOBJ) scot.o scsort.o scxtract.o sread.o sort.o
COBJ9 = extract.o twarp.o swrite.o butter.o grain.o vdelay.o cmath.o follow.o
COBJA = cvanal.o grain4.o pvinterp.o pvread.o sndwarp.o vpvoc.o hrtferX.o
COBJB = winEPS.o nlfilt.o opcode.o ugrw1.o ugrw2.o ugensa.o cross2.o dam.o
COBJC = midiout.o midiops2.o midisend.o wavegde.o filter.o complex.o repluck.o
COBJD = pluck.o physutil.o physmod.o modal4.o shaker.o fm4op.o diskin.o
COBJE = pvadd.o moog1.o singwave.o mandolin.o space.o locsig.o dcblockr.o
COBJF = pvocext.o flanger.o aifc.o lowpassr.o uggab.o biquad.o one_file.o
COBJG = schedule.o midiops3.o pitch.o getstring.o ugsc.o fout.o sndinfUG.o
COBJH = pvlook.o sfont.o vbap.o vbap_four.o vbap_eight.o
COBJI = vbap_sixteen.o vbap_zak.o control.o bowedbar.o phisem.o sdif.o 
COBJJ = sdif-mem.o babo.o ugmoss.o bbcut.o spat3d.o pvxanal.o mxfft.o
COBJK = pvsanal.o pstream.o pvfileio.o oscbnk.o oscils.o
COBKL = wave-terrain.o dnoise.o dnfft.o mididevice.o clfilt.o midiinterop.o
COBJM = dl_opcodes.o jpff_glue.o namedins.o
COBJS =	$(COBJ1) $(COBJ2) $(COBJ3) $(COBJ4) $(COBJ5) $(COBJ6) $(COBJ7) \
	$(COBJ8) $(COBJ9) $(COBJA) $(COBJB) $(COBJC) $(COBJD) $(COBJE) \
	$(COBJF) $(COBJG) $(COBJH) $(COBJI) $(COBJJ) $(COBJK) $(COBKL) \
	$(COBJM) $(FLTKOBJ)

HDRS =  3Dug.h aiff.h aops.h bowed.h brass.h butter.h clarinet.h \
	cmath.h complex.h convolve.h cs.h cscore.h dam.h diskin.h disprep.h \
	dpwelib.h dsputil.h dumpf.h fft.h fhtfun.h filter.h flute.h fm4op.h \
	follow.h ftgen.h grain.h grain4.h hrtferx.h ieee80.h insert.h \
	lpc.h marimba.h midioops.h midiops.h midiops2.h midiout.h modal4.h \
	moog1.h nlfilt.h oload.h physutil.h pluck.h prototyp.h ptrigtbl.h \
	pvadd.h pvinterp.h pvoc.h pvread.h repluck.h revsets.h scot.h \
	sfheader.h shaker.h singwave.h sndwarp.h sort.h soundio.h spectra.h \
	sysdep.h ugens1.h ugens2.h ugens3.h ugens4.h ugens5.h ugens6.h \
	ugens7.h ugens8.h ugens9.h ugensa.h ugrw1.h ugrw2.h vdelay.h \
	version.h vibraphn.h vpvoc.h wave.h wavegde.h winEPS.h windin.h \
	cwindow.h mandolin.h space.h locsig.h dcblockr.h pvocext.h flanger.h \
	lowpassr.h uggab.h biquad.h schedule.h midiops3.h pitch.h text.h \
	ugsc.h fout.h sndinfUG.h sf.h sfont.h sfenum.h sftype.h \
	vbap.h control.h bowedbar.h phisem.h sdif.h sdif-mem.h babo.h \
	ugmoss.h bbcut.h spat3d.h pstream.h pvfileio.h pvxanal.h oscbnk.h \
	oscils.h wave-terrain.h clfilt.h midiinterop.h opcode.h \
	csdl.h widgets.h namedins.h typetabl.h

PROGS   = csound
SUBDIRS = anals utils1 utils2 utils3

## Plugin stuff
PLUGINS = OSClib.so metro.so chosc.so pans.so
PSRCS   = metro.c OSC-sock.c chosc.c pans.c

all:		$(PROGS) $(SUBDIRS)  	#must be run in this order

csound:		$(COBJS) $(CSUM) $(CDEP) csound.xmg
		$(CC) $(CFLAGS) -o csound $(COBJS) $(LIBS)

TAGS:	$(CSRCS) $(HDRS)
		etags $(CSRCS) $(HDRS)

csound.a:	$(COBJS) $(CDEP)
		-rm csound.a
		ar q csound.a $(COBS)
		-ranlib csound.a

xmg:	American.xmg English.xmg csound.xmg

American.xmg:	all_strings makedb
	./makedb all_strings American

English.xmg:	english-strings makedb
	./makedb english-strings English

csound.xmg:	all_strings English.xmg
	cp English.xmg csound.xmg
#	cp American.xmg csound.xmg

makedb:	makedb.c text.h
	$(CC) -o makedb makedb.c

.c.o:
	$(CC) $(CFLAGS) -c $*.c -o $*.o

.cpp.o:
	$(CXX) $(CXXFLAGS) -c $*.cpp -o $*.o

ADSYNS = hetro 						#targets in anal/adsyn
LPCS = lpanal						#targets in anal/lpc
PVOCS = pvanal 						#targets in anal/pvoc
CVL = cvanal						#targets in anal/convol
#targets in anal
ANALS = adsyns $(ADSYNS) lpcs $(LPCS) pvocs $(PVOCS) cvl $(CVL)
anals $(ANALS):
		cd anal; $(MAKE) $@

SCOTS = scots						#targets in util1/scot
CSCORES = cscores					#targets in util1/cscore
SORTEXS = scsort csound-extract				#targets in util1/sortex
UTILS1 = $(SCOTS) $(CSCORES) sortexs $(SORTEXS)		#targets in util1
utils1 $(UTILS1): natben.o
		cd util1; $(MAKE) $@

UTILS2 = sndinfos scale mixers extractor envelope pvlook dnoise srconv #targets in util2
utils2 $(UTILS2):
		cd util2; $(MAKE) $@

UTIL3 = sdif2adsyn.c sdif.c sdif-mem.c

UTILS3 = sdif2ad
utils3: $(UTILS3)

sdif2ad: sdif2adsyn.o sdif.o sdif-mem.o
	$(CC) sdif2adsyn.o sdif.o sdif-mem.o -o sdif2ad

install:	$(PROGS) $(CSA) sdif2ad manpp
		-strip $(PROGS)
		install -d $(DEST)
		install $(PROGS) $(DEST)
		cd anal; $(MAKE) install
		cd util1; $(MAKE) install
		cd util2; $(MAKE) install
		install sdif2ad $(DEST)/sdif2ad
#		cd util3; $(MAKE) install

install-lib: csound.a
	install -d $(LIB)
	install csound.a $(LIB)/libcsound.a

MANPP=csound hetro lpanal pvanal cvanal dnoise pvlook sdif2ad sndinfo srconv envext csound-extract extractor mixer scale scot scsort
manpp:
		-for i in $(MANPP); do rm -f $(CAT1)/$$i.1; done
		-for i in $(MANPP); do cp man/man1/$$i.1 $(MAN1)/$$i.1; done

clean:
		-rm $(COBS) cscormai.o dmain.o $(PROGS) $(CSA) dsound *.s 
		-rm *.o sdif2ad makedb OSClib.so metro.so
		-rm *.xmg
		cd anal; $(MAKE) clean
		cd util1; $(MAKE) clean
		cd util2; $(MAKE) clean
		cd testfils; rm -f core score.srt score.xtr
		cd tutofils; rm -f core score.srt score.xtr
		cd scorfils; rm -f core score.srt score.xtr
		cd morefils; rm -f core score.srt score.xtr
		cd midifils; rm -f core score.srt score.xtr
		cd analfils; rm -f core pv.medlab
		cd cscofils; rm -f core cscore csound *.o *.out *.srt

rmbak:
		-rm *.bak *~
		cd anal; $(MAKE) rmbak
		cd util1; $(MAKE) rmbak
		cd util2; $(MAKE) rmbak
		cd man; rm -f *.bak *~
		cd testfils; rm -f *.bak *~
		cd tutofils; rm -f *.bak *~
		cd scorfils; rm -f *.bak *~
		cd morefils; rm -f *.bak *~
		cd midifils; rm -f *.bak *~
		cd cscofils; rm -f *.bak *~

CSLinux.bin.tgz: /usr/local/bin/csound /usr/local/bin/hetro \
	/usr/local/bin/lpanal /usr/local/bin/pvanal /usr/local/bin/scot \
	/usr/local/bin/scsort /usr/local/bin/extract /usr/local/bin/sndinfo \
	/usr/local/bin/scale /usr/local/bin/mixer /usr/local/bin/extractor \
	/usr/local/bin/envext /usr/local/bin/pvlook /usr/local/bin/sdif2ad \
	/usr/local/bin/dnoise /usr/local/bin/srconv
	(cd /usr/local/bin; tar cvzf ~/Csound4.23/CSLinux.bin.tgz csound \
	hetro lpanal pvanal scot scsort extract sndinfo scale mixer \
	extractor envext pvlook sdif2ad dnoise srconv)

Csound.tar.gz:  all_files \
	$(CSRCS) $(HDRS) \
	LINUXaudio.c DECaudio.c DECplay.c HPplay.c DECaudio.h \
	DECplay.h SGIplay.c anal/adsyn/main.c anal/adsyn/makef anal/lpc/main.c \
	anal/lpc/makef anal/makef anal/makef anal/pvoc/main.c anal/pvoc/makef \
	cscofils/combine.c cscofils/default.c cscofils/pulse.c \
	cscofils/sine.orc cscofils/sine.sco cscofils/switch.c cscofils/test.c \
	cscofils/test2.c cscofils/README cscofils/aliases cscormai.c Makefile \
	util1/cscore/makef util1/makef util1/scot/main.c util1/scot/makef \
	util1/sortex/makef util1/sortex/smain.c util1/sortex/xmain.c \
	util2/envext/envext.c util2/envext/makef util2/exports/Makefile \
	util2/exports/het_export.c util2/exports/het_import.c \
	util2/exports/lpc_export.c util2/exports/pv_export.c \
	util2/exports/pv_import.c util2/makef util2/mixer/makef \
	util2/mixer/mixer.c util2/mixer/xtrct.c util2/mkgraph/fg.h \
	util2/mkgraph/fgdemo.c util2/mkgraph/mkgraph.c util2/scale.dir/makef \
	util2/scale.dir/scale.c util2/sndinfo/main.c \
	util2/sndinfo/makef util2/pvlook.dir/makef winSGI.c winbor.c winwat.c
		(cd .. ; tar cvf - `cat csound4/all_files` | gzip > csound4/Csound.tar.gz)

depend:
	$(CC) -M $(DEFINES) $(CSRCS) $(CSMS) $(UTIL3) $(PSRCS) > deps
	cat Makefile deps > makefile

#### PLUGINS ####

plugins:	$(PLUGINS)

OSClib.so: OSC-sock.o
	ld -E --shared OSC-sock.o -o OSClib.so

metro.so: metro.o
	ld -E --shared metro.o -o metro.so

pans.so: pans.o
	ld -E --shared pans.o -o pans.so

chosc.so: chosc.o
	ld -E --shared chosc.o -o chosc.so

testlib.so: testlib.o
	ld -E --shared testlib.o -o testlib.so

test1lib.so: test1lib.o
	ld -E --shared test1lib.o -o test1lib.so

test:
	(cd ConderTests; ./runtests )

# DO NOT DELETE THIS LINE