# Makefile to compile Spectroscopic Toolkit version 1.95 under UNIX. # Pieter Suurmond, april 21, 2011. # Pathname of executable (put in parent dir): PRG = ../ST #################################################### ### Select your C compiler and optimisation flags: ### Uncomment block 1 xor block 2 below: ### 1: GNU compiler and flags (generic for OSX, LINUX, IRIX, etc.): ### (c99 seems necessary for long double reading from string (strtold()).) CC = gcc CFLAGS = -O3 -Wall -std=c99 ### 2: MIPSpro compiler and options (SGI IRIX): #CC = cc #CFLAGS = -O3 -fullwarn #################################################### # Source files (maybe not all comp/cXX_xxxx.c files are always necessary): SRC = gt/gt.c\ ST.c\ ST_wavelets.c\ ST_score.c\ ST_aiff.c\ ST_export.c\ ST_pconv.c\ comp/c00_example.c\ comp/c01_twoWeeks.c\ comp/c01_massiveCloud.c\ comp/c02_smear.c\ comp/c03_H.c\ comp/c04_Mendelejev.c\ comp/c04_Xenofobia.c\ comp/c04_regress.c\ comp/c05_hydrogenBirds.c\ comp/c06_JEBASE.c\ comp/c06_Hsplit.c\ comp/c06_Hbells.c\ comp/c06_Hmelody.c\ comp/c07_composition2003.c\ comp/c08_cold_fusion.c # Objects (always one object per sourcefile): OBJ = $(SRC:.c=.o) all: $(PRG) # Rules to build objects. Corresponding .c and .h files are mentioned on # the first line to get dependancies right, i.e. when these file are changed, # appropriate objects get recompiled automatically. # Separate rule to enforce graphic toolkit 'gt.o' to be built in subdirectory 'gt': gt/gt.o: gt/gt.c gt/gt.h $(CC) $(CFLAGS) -c gt/gt.c -o gt/gt.o # Some files need to include headers from subdirectories, to avoid use of platform- # dependent pathnames, we use -I option here to let the compiler find headers: ST.o: ST.c ST_pconv.h ST_wavelets.h ST_score.h comp/c00.h $(CC) $(CFLAGS) -Icomp -c ST.c -o ST.o ST_score.o: ST_score.c ST_score.h ST_wavelets.h ST_engine.h gt/gt.h $(CC) $(CFLAGS) -Igt -c ST_score.c -o ST_score.o ST_export.o: ST_export.c ST_export.h ST_wavelets.h ST_pconv.h $(CC) $(CFLAGS) -c ST_export.c -o ST_export.o # Needs header from parent directory: comp/c00_example.o: comp/c00_example.c ST_wavelets.h $(CC) $(CFLAGS) -I. -c comp/c00_example.c -o comp/c00_example.o comp/c01_twoWeeks.o: comp/c01_twoWeeks.c ST_wavelets.h ST_pconv.h $(CC) $(CFLAGS) -I. -Igt -c comp/c01_twoWeeks.c -o comp/c01_twoWeeks.o comp/c01_massiveCloud.o: comp/c01_massiveCloud.c ST_wavelets.h ST_pconv.h $(CC) $(CFLAGS) -I. -Igt -c comp/c01_massiveCloud.c -o comp/c01_massiveCloud.o comp/c02_smear.o: comp/c02_smear.c ST_wavelets.h ST_pconv.h $(CC) $(CFLAGS) -I. -c comp/c02_smear.c -o comp/c02_smear.o comp/c03_H.o: comp/c03_H.c ST_wavelets.h $(CC) $(CFLAGS) -I. -c comp/c03_H.c -o comp/c03_H.o comp/c04_Mendelejev.o: comp/c04_Mendelejev.c ST_wavelets.h $(CC) $(CFLAGS) -I. -c comp/c04_Mendelejev.c -o comp/c04_Mendelejev.o comp/c04_Xenofobia.o: comp/c04_Xenofobia.c ST_wavelets.h $(CC) $(CFLAGS) -I. -c comp/c04_Xenofobia.c -o comp/c04_Xenofobia.o comp/c04_regress.o: comp/c04_regress.c ST_wavelets.h $(CC) $(CFLAGS) -I. -c comp/c04_regress.c -o comp/c04_regress.o comp/c05_hydrogenBirds.o: comp/c05_hydrogenBirds.c ST_wavelets.h $(CC) $(CFLAGS) -I. -Igt -c comp/c05_hydrogenBirds.c -o comp/c05_hydrogenBirds.o comp/c06_Hsplit.o: comp/c06_Hsplit.c ST_wavelets.h $(CC) $(CFLAGS) -I. -c comp/c06_Hsplit.c -o comp/c06_Hsplit.o comp/c06_Hbells.o: comp/c06_Hbells.c ST_wavelets.h $(CC) $(CFLAGS) -I. -c comp/c06_Hbells.c -o comp/c06_Hbells.o comp/c06_Hmelody.o: comp/c06_Hmelody.c ST_wavelets.h $(CC) $(CFLAGS) -I. -c comp/c06_Hmelody.c -o comp/c06_Hmelody.o comp/c06_JEBASE.o: comp/c06_JEBASE.c comp/c06_JEBASE.h $(CC) $(CFLAGS) -I. -c comp/c06_JEBASE.c -o comp/c06_JEBASE.o comp/c07_composition2003.o: comp/c07_composition2003.c ST_wavelets.h $(CC) $(CFLAGS) -I. -Igt -c comp/c07_composition2003.c -o comp/c07_composition2003.o comp/c08_cold_fusion.o: comp/c08_cold_fusion.c ST_wavelets.h $(CC) $(CFLAGS) -I. -Igt -c comp/c08_cold_fusion.c -o comp/c08_cold_fusion.o # Just some dependancies: ST_wavelets.o: ST_wavelets.c ST_wavelets.h ST_engine.h ST_integers.h $(CC) $(CFLAGS) -c ST_wavelets.c -o ST_wavelets.o ST_pconv.o: ST_pconv.c ST_pconv.h $(CC) $(CFLAGS) -c ST_pconv.c -o ST_pconv.o ST_aiff.o: ST_aiff.c ST_aiff.h ST_integers.h $(CC) $(CFLAGS) -c ST_aiff.c -o ST_aiff.o # How to build the main program: # Link against the math library with '-lm'. # $(PRG): $(OBJ) $(CC) $(CFLAGS) $(OBJ) -lm -o $(PRG) ### strip $(PRG) # Take care: Removes everything but sources and database-textfile! # clean: -rm $(OBJ) -rm $(PRG) ../core -rm ../gfall.pbin -rm ../*.jpg ../*.aiff ../*.log