1# The path to the tcl.h header file
2
3TCL_INCPATH = @TCL_SRC_DIR@/generic
4
5# The path to the tk.h header file
6
7TK_INCPATH  = @TK_SRC_DIR@/generic
8
9# The path to the X11 include files
10
11XINCLUDES   = @XINCLUDES@
12
13# Install SNACK package here
14
15SNACK_INSTALL_PATH = @SNACK_INSTALL_PATH@
16SNACK_HINSTALL_PATH = @SNACK_HINSTALL_PATH@
17
18#
19
20GENERIC_DIR = @srcdir@/../generic
21UNIX_DIR    = @srcdir@/../unix
22MAC_DIR     = @srcdir@/../mac
23
24VERSION = 2.2
25
26DESTDIR	=
27
28TCL_VERSION = @TCLVER@
29
30CC        = @CC@
31
32INCLUDES  = ${XINCLUDES} @TCL_INCLUDE_SPEC@ -I${TCL_INCPATH} -I${TK_INCPATH} @AINC@ @NISTINC@
33
34CFLAGS    = -O @CFLAGS@ @AFLAG@ ${INCLUDES} @TCLAPI@ -I${GENERIC_DIR} @DEFS@
35
36LIBSO     = -lc @ALIB@ @TCL_LIB_SPEC@
37
38LIBSN     = -lc @TK_LIBS@ @ALIB@ @TCL_LIB_SPEC@ @TK_LIB_SPEC@
39
40SHLIB_LD     = @SHLIB_LD@
41SHLIB_SUFFIX = @SHLIB_SUFFIX@
42
43all: libsound${SHLIB_SUFFIX} libsnack${SHLIB_SUFFIX} @DOSTUBLIB@ @LIBNIST@ @LIBOGG@ editversion
44
45OBJSO = sound.o jkSound.o jkSoundEngine.o jkSoundEdit.o jkSoundFile.o \
46	g711.o @AOBJ@ jkFormatMP3.o jkSoundProc.o ffa.o jkPitchCmd.o \
47	@STUBINITOBJ@ jkAudio.o jkMixer.o shape.o jkFilter.o jkSynthesis.o \
48	jkFilterIIR.o jkGetF0.o sigproc.o jkFormant.o sigproc2.o
49
50OBJSN = snack.o jkSound.o jkSoundEngine.o jkSoundEdit.o jkSoundFile.o \
51	jkCanvSpeg.o jkCanvWave.o jkCanvSect.o ffa.o g711.o @AOBJ@ \
52	jkFormatMP3.o jkSoundProc.o jkPitchCmd.o @STUBINITOBJ@ \
53	jkAudio.o jkMixer.o shape.o jkFilter.o jkSynthesis.o jkFilterIIR.o \
54	jkGetF0.o sigproc.o jkFormant.o sigproc2.o
55
56OBJSNST = snackStubLib.o
57
58sound.o: $(GENERIC_DIR)/sound.c
59	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/sound.c
60
61jkSound.o: $(GENERIC_DIR)/jkSound.c
62	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkSound.c
63
64jkSoundEngine.o: $(GENERIC_DIR)/jkSoundEngine.c
65	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkSoundEngine.c
66
67jkSoundEdit.o: $(GENERIC_DIR)/jkSoundEdit.c
68	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkSoundEdit.c
69
70jkSoundFile.o: $(GENERIC_DIR)/jkSoundFile.c
71	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkSoundFile.c
72
73g711.o: $(GENERIC_DIR)/g711.c
74	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/g711.c
75
76jkFormatMP3.o: $(GENERIC_DIR)/jkFormatMP3.c
77	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkFormatMP3.c
78
79jkSoundProc.o: $(GENERIC_DIR)/jkSoundProc.c
80	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkSoundProc.c
81
82ffa.o: $(GENERIC_DIR)/ffa.c
83	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/ffa.c
84
85jkPitchCmd.o: $(GENERIC_DIR)/jkPitchCmd.c
86	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkPitchCmd.c
87
88snack.o: $(GENERIC_DIR)/snack.c
89	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/snack.c
90
91jkCanvSpeg.o: $(GENERIC_DIR)/jkCanvSpeg.c
92	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkCanvSpeg.c
93
94jkCanvWave.o: $(GENERIC_DIR)/jkCanvWave.c
95	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkCanvWave.c
96
97jkCanvSect.o: $(GENERIC_DIR)/jkCanvSect.c
98	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkCanvSect.c
99
100jkAudio.o: $(GENERIC_DIR)/jkAudio.c
101	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkAudio.c
102
103jkMixer.o: $(GENERIC_DIR)/jkMixer.c
104	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkMixer.c
105
106shape.o: $(GENERIC_DIR)/shape.c
107	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/shape.c
108
109jkFilter.o: $(GENERIC_DIR)/jkFilter.c
110	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkFilter.c
111
112jkFilterIIR.o: $(GENERIC_DIR)/jkFilterIIR.c
113	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkFilterIIR.c
114
115jkSynthesis.o: $(GENERIC_DIR)/jkSynthesis.c
116	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkSynthesis.c
117
118snackStubInit.o: $(GENERIC_DIR)/snackStubInit.c
119	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/snackStubInit.c
120
121jkAudIO_hp.o: $(UNIX_DIR)/jkAudIO_hp.c
122	$(CC) -c $(CFLAGS) $(UNIX_DIR)/jkAudIO_hp.c
123
124jkAudIO_sun.o: $(UNIX_DIR)/jkAudIO_sun.c
125	$(CC) -c $(CFLAGS) $(UNIX_DIR)/jkAudIO_sun.c
126
127jkAudIO_sgi.o: $(UNIX_DIR)/jkAudIO_sgi.c
128	$(CC) -c $(CFLAGS) $(UNIX_DIR)/jkAudIO_sgi.c
129
130jkAudIO_oss.o: $(UNIX_DIR)/jkAudIO_oss.c
131	$(CC) -c $(CFLAGS) $(UNIX_DIR)/jkAudIO_oss.c
132
133jkAudIO_alsa.o: $(UNIX_DIR)/jkAudIO_alsa.c
134	$(CC) -c $(CFLAGS) $(UNIX_DIR)/jkAudIO_alsa.c
135
136jkAudIO_osx.o: $(UNIX_DIR)/jkAudIO_osx.c
137	$(CC) -c $(CFLAGS) $(UNIX_DIR)/jkAudIO_osx.c
138
139jkAudIO_mac.o: $(MAC_DIR)/jkAudIO_mac.c
140	$(CC) -c $(CFLAGS) $(MAC_DIR)/jkAudIO_mac.c
141
142jkAudIO_skel.o: $(UNIX_DIR)/jkAudIO_skel.c
143	$(CC) -c $(CFLAGS) $(UNIX_DIR)/jkAudIO_skel.c
144
145jkGetF0.o: $(GENERIC_DIR)/jkGetF0.c
146	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkGetF0.c
147
148sigproc.o: $(GENERIC_DIR)/sigproc.c
149	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/sigproc.c
150
151jkFormant.o: $(GENERIC_DIR)/jkFormant.c
152	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/jkFormant.c
153
154sigproc2.o: $(GENERIC_DIR)/sigproc2.c
155	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/sigproc2.c
156
157snackStubLib.o: $(GENERIC_DIR)/snackStubLib.c
158	$(CC) -c $(CFLAGS) $(GENERIC_DIR)/snackStubLib.c
159
160libsound${SHLIB_SUFFIX}: ${OBJSO}
161	${SHLIB_LD} ${OBJSO} ${LIBSO} -o libsound${SHLIB_SUFFIX} 
162	sed s/.dll/${SHLIB_SUFFIX}/ < $(UNIX_DIR)/pkgIndex.tcl.dll > pkgIndex.tcl
163
164libsnack${SHLIB_SUFFIX}: ${OBJSN}
165	${SHLIB_LD} ${OBJSN} ${LIBSN} -o libsnack${SHLIB_SUFFIX} 
166	sed s/.dll/${SHLIB_SUFFIX}/ < $(UNIX_DIR)/pkgIndex.tcl.dll > pkgIndex.tcl
167
168stublib: ${OBJSNST}
169	ar cr libsnackstub${VERSION}.a ${OBJSNST}
170
171editversion: ${OBJSN}
172	if test "$(TCL_VERSION)" != "8.4"; then\
173	    cd $(UNIX_DIR)/../demos/tcl/ ;\
174	    sed s/wish8.4/wish${TCL_VERSION}/ MinSect.tcl > tmp ;\
175	    mv -f tmp MinSect.tcl ;\
176	    chmod 755 MinSect.tcl ;\
177	    sed s/wish8.4/wish${TCL_VERSION}/ MinSpeg.tcl > tmp ;\
178	    mv -f tmp MinSpeg.tcl ;\
179	    chmod 755 MinSpeg.tcl ;\
180	    sed s/wish8.4/wish${TCL_VERSION}/ MinWave.tcl > tmp ;\
181	    mv -f tmp MinWave.tcl ;\
182	    chmod 755 MinWave.tcl ;\
183	    sed s/wish8.4/wish${TCL_VERSION}/ Section.tcl > tmp ;\
184	    mv -f tmp Section.tcl ;\
185	    chmod 755 Section.tcl ;\
186	    sed s/wish8.4/wish${TCL_VERSION}/ Spectrogram.tcl > tmp ;\
187	    mv -f tmp Spectrogram.tcl ;\
188	    chmod 755 Spectrogram.tcl ;\
189	    sed s/tclsh8.4/tclsh${TCL_VERSION}/ SphereTest.tcl > tmp ;\
190	    mv -f tmp SphereTest.tcl ;\
191	    chmod 755 SphereTest.tcl ;\
192	    sed s/wish8.4/wish${TCL_VERSION}/ Waveform.tcl > tmp ;\
193	    mv -f tmp Waveform.tcl ;\
194	    chmod 755 Waveform.tcl ;\
195	    sed s/wish8.4/wish${TCL_VERSION}/ aserver.tcl > tmp ;\
196	    mv -f tmp aserver.tcl ;\
197	    chmod 755 aserver.tcl ;\
198	    sed s/tclsh8.4/tclsh${TCL_VERSION}/ compose.tcl > tmp ;\
199	    mv -f tmp compose.tcl ;\
200	    chmod 755 compose.tcl ;\
201	    sed s/wish8.4/wish${TCL_VERSION}/ cool.tcl > tmp ;\
202	    mv -f tmp cool.tcl ;\
203	    chmod 755 cool.tcl ;\
204	    sed s/tclsh8.4/tclsh${TCL_VERSION}/ echo.tcl > tmp ;\
205	    mv -f tmp echo.tcl ;\
206	    chmod 755 echo.tcl ;\
207	    sed s/tclsh8.4/tclsh${TCL_VERSION}/ formant.tcl > tmp ;\
208	    mv -f tmp formant.tcl ;\
209	    chmod 755 formant.tcl ;\
210	    sed s/tclsh8.4/tclsh${TCL_VERSION}/ fourChan.tcl > tmp ;\
211	    mv -f tmp fourChan.tcl ;\
212	    chmod 755 fourChan.tcl ;\
213	    sed s/wish8.4/wish${TCL_VERSION}/ levelmeter.tcl > tmp ;\
214	    mv -f tmp levelmeter.tcl ;\
215	    chmod 755 levelmeter.tcl ;\
216	    sed s/tclsh8.4/tclsh${TCL_VERSION}/ mapChan.tcl > tmp ;\
217	    mv -f tmp mapChan.tcl ;\
218	    chmod 755 mapChan.tcl ;\
219	    sed s/wish8.4/wish${TCL_VERSION}/ mixer.tcl > tmp ;\
220	    mv -f tmp mixer.tcl ;\
221	    chmod 755 mixer.tcl ;\
222	    sed s/tclsh8.4/tclsh${TCL_VERSION}/ play.tcl > tmp ;\
223	    mv -f tmp play.tcl ;\
224	    chmod 755 play.tcl ;\
225	    sed s/wish8.4/wish${TCL_VERSION}/ record.tcl > tmp ;\
226	    mv -f tmp record.tcl ;\
227	    chmod 755 record.tcl ;\
228	    sed s/tclsh8.4/tclsh${TCL_VERSION}/ recrplay.tcl > tmp ;\
229	    mv -f tmp recrplay.tcl ;\
230	    chmod 755 recrplay.tcl ;\
231	    sed s/tclsh8.4/tclsh${TCL_VERSION}/ rplay.tcl > tmp ;\
232	    mv -f tmp rplay.tcl ;\
233	    chmod 755 rplay.tcl ;\
234	    sed s/wish8.4/wish${TCL_VERSION}/ snamp.tcl > tmp ;\
235	    mv -f tmp snamp.tcl ;\
236	    chmod 755 snamp.tcl ;\
237	    sed s/wish8.4/wish${TCL_VERSION}/ spectrum.tcl > tmp ;\
238	    mv -f tmp spectrum.tcl ;\
239	    chmod 755 spectrum.tcl ;\
240	    sed s/wish8.4/wish${TCL_VERSION}/ tomAmp.tcl > tmp ;\
241	    mv -f tmp tomAmp.tcl ;\
242	    chmod 755 tomAmp.tcl ;\
243	    sed s/wish8.4/wish${TCL_VERSION}/ dbrec.tcl > tmp ;\
244	    mv -f tmp dbrec.tcl ;\
245	    chmod 755 dbrec.tcl ;\
246	    sed s/wish8.4/wish${TCL_VERSION}/ widget.tcl > tmp ;\
247	    mv -f tmp widget.tcl ;\
248	    chmod 755 widget.tcl ;\
249	    sed s/wish8.4/wish${TCL_VERSION}/ wrap.tcl > tmp ;\
250	    mv -f tmp wrap.tcl ;\
251	    chmod 755 wrap.tcl ;\
252	    sed s/wish8.4/wish${TCL_VERSION}/ generator.tcl > tmp ;\
253	    mv -f tmp generator.tcl ;\
254	    chmod 755 generator.tcl ;\
255	    sed s/wish8.4/wish${TCL_VERSION}/ notescale.tcl > tmp ;\
256	    mv -f tmp notescale.tcl ;\
257	    chmod 755 notescale.tcl ;\
258	    sed s/wish8.4/wish${TCL_VERSION}/ oggstream.tcl > tmp ;\
259	    mv -f tmp oggstream.tcl ;\
260	    chmod 755 oggstream.tcl ;\
261	    sed s/wish8.4/wish${TCL_VERSION}/ polarspec.tcl > tmp ;\
262	    mv -f tmp polarspec.tcl ;\
263	    chmod 755 polarspec.tcl ;\
264	    sed s/wish8.4/wish${TCL_VERSION}/ pitch.tcl > tmp ;\
265	    mv -f tmp pitch.tcl ;\
266	    chmod 755 pitch.tcl ;\
267	    sed s/wish8.4/wish${TCL_VERSION}/ phonetogram.tcl > tmp ;\
268	    mv -f tmp phonetogram.tcl ;\
269	    chmod 755 phonetogram.tcl ;\
270	    sed s/wish8.4/wish${TCL_VERSION}/ vowelspace.tcl > tmp ;\
271	    mv -f tmp vowelspace.tcl ;\
272	    chmod 755 vowelspace.tcl ;\
273	    sed s/wish8.4/wish${TCL_VERSION}/ CSLwithAB.tcl > tmp ;\
274	    mv -f tmp CSLwithAB.tcl ;\
275	    chmod 755 CSLwithAB.tcl ;\
276	    sed s/wish8.4/wish${TCL_VERSION}/ xs.tcl > tmp ;\
277	    mv -f tmp xs.tcl ;\
278	    chmod 755 xs.tcl ;\
279	    sed s/wish8.4/wish${TCL_VERSION}/ playlist.tcl > tmp ;\
280	    mv -f tmp playlist.tcl ;\
281	    chmod 755 playlist.tcl ;\
282	    sed s/wish8.4/wish${TCL_VERSION}/ mixplay.tcl > tmp ;\
283	    mv -f tmp mixplay.tcl ;\
284	    chmod 755 mixplay.tcl ;\
285	    cd ../../unix ;\
286	fi
287LIBNIST = @NISTLIBS@ -lc @TCL_LIB_SPEC@ -L. @SNACK_STUB_LIB_FLAG@
288OBJNIST = SphereFile.o
289
290SphereFile.o: $(GENERIC_DIR)/SphereFile.c
291	$(CC) -c $(CFLAGS) -DUSE_SNACK_STUBS $(GENERIC_DIR)/SphereFile.c
292
293libsnacksphere${SHLIB_SUFFIX}: ${OBJNIST}
294	${SHLIB_LD} ${OBJNIST} ${LIBNIST} -o libsnacksphere${SHLIB_SUFFIX}
295
296LIBOGG = @OGGLIBS@ -lc @TCL_LIB_SPEC@ -L. @SNACK_STUB_LIB_FLAG@
297OBJOGG = SnackOgg.o
298
299SnackOgg.o: $(GENERIC_DIR)/SnackOgg.c
300	$(CC) @OGGINC@ -c $(CFLAGS) -DUSE_SNACK_STUBS $(GENERIC_DIR)/SnackOgg.c
301
302libsnackogg${SHLIB_SUFFIX}: ${OBJOGG}
303	${SHLIB_LD} ${OBJOGG} ${LIBOGG} -o libsnackogg${SHLIB_SUFFIX}
304
305install:
306	@if [ ! -d ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION} ] ; then \
307	    echo "Making directory ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}"; \
308	    mkdir -p ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}; \
309	    chmod 755 ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}; \
310        else true; \
311        fi;
312	cp -f libsound${SHLIB_SUFFIX} ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/
313	cp -f libsnack${SHLIB_SUFFIX} ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/
314	if test -f libsnackstub${VERSION}.a; then cp -f libsnackstub${VERSION}.a ${DESTDIR}${SNACK_INSTALL_PATH}/; fi
315	if test -f libsnacksphere${SHLIB_SUFFIX}; then cp -f libsnacksphere${SHLIB_SUFFIX} ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/; fi
316	if test -f libsnackogg${SHLIB_SUFFIX}; then cp -f libsnackogg${SHLIB_SUFFIX} ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/; fi
317	cp -f $(UNIX_DIR)/snack.tcl ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/
318	cp -f pkgIndex.tcl ${DESTDIR}${SNACK_INSTALL_PATH}/snack${VERSION}/
319
320clean:
321	rm -f *.o libsound${SHLIB_SUFFIX} libsnack${SHLIB_SUFFIX} libsnacksphere${SHLIB_SUFFIX}
322
323distclean: clean
324	rm -f Makefile config.status config.cache config.log
325
326# Tests are run using wish because of play/record commands
327
328test:
329	LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}; export LD_LIBRARY_PATH; \
330	DYLD_LIBRARY_PATH=`pwd`:${DYLD_LIBRARY_PATH}; export DYLD_LIBRARY_PATH; \
331	LIBPATH=`pwd`:${LIBPATH}; export LIBPATH; \
332	SHLIB_PATH=`pwd`:${SHLIB_PATH}; export SHLIB_PATH; \
333	TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
334	cp -f $(UNIX_DIR)/../demos/tcl/ex1.wav ex1.wav; \
335	wish${TCL_VERSION} $(UNIX_DIR)/../tests/all.tcl
336