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