1CC = gcc -pipe -DStandAlone -ggdb 2CCOPTFLAGS = -O2 3CCDEBUGFLAGS = -ggdb 4CCWARNFLAGS = -Wall -pedantic -W -Wshadow -Wnested-externs \ 5 -Wwrite-strings -Wpointer-arith \ 6 -Wmissing-declarations -Wredundant-decls -Winline \ 7 -Wstrict-prototypes 8 9INCLUDEDIR = ../ 10LIBDIR = .. 11 12CFLAGS = $(CCOPTFLAGS) $(CCWARNFLAGS) -I $(INCLUDEDIR) 13LLIBS = $(LIBDIR)/libds.a 14 15OBJ = avltree.o hashtbl.o heap.o parray.o queue.o stack.o set.o 16PROGS = avltree hashtbl heap parray queue stack set 17 18.SUFFIXES: .o 19 20all: 21 $(MAKE) $(PROGS) 22linux: 23 @-$(MAKE) CC="gcc -pipe -DStandAlone" \ 24 CCWARNFLAGS="-Wall -pedantic -W -Wshadow \ 25 -Wnested-externs -Wwrite-strings -Wpointer-arith \ 26 -Wmissing-declarations -Wredundant-decls -Winline \ 27 -Wstrict-prototypes" $(PROGS) 28 29avltree: avltree.o nullstr.o ../ds.h $(LLIBS) 30 $(CC) $(CFLAGS) $@.o nullstr.o $(LLIBS) -o $@ 31hashtbl: hashtbl.o nullstr.o ../ds.h $(LLIBS) 32 $(CC) $(CFLAGS) $@.o nullstr.o $(LLIBS) -o $@ 33heap: heap.o nullstr.o ../ds.h $(LLIBS) 34 $(CC) $(CFLAGS) $@.o nullstr.o $(LLIBS) -o $@ 35queue: queue.o nullstr.o ../ds.h $(LLIBS) 36 $(CC) $(CFLAGS) $@.o nullstr.o $(LLIBS) -o $@ 37stack: stack.o nullstr.o ../ds.h $(LLIBS) 38 $(CC) $(CFLAGS) $@.o nullstr.o $(LLIBS) -o $@ 39parray: parray.o nullstr.o ../ds.h $(LLIBS) 40 $(CC) $(CFLAGS) $@.o nullstr.o $(LLIBS) -o $@ 41set: set.o nullstr.o ../ds.h $(LLIBS) 42 $(CC) $(CFLAGS) $@.o nullstr.o $(LLIBS) -o $@ 43 44%.o: %.c 45 $(CC) $(CFLAGS) -c $*.c 46 47.PHONY: clean 48 49clean: 50 @-echo "Cleaning directory " 51 @-rm -f core *.e *.o *.obj *.ilk *.ncb *.pdb *.pch; \ 52 rm -f *~ $(PROGS) $(OBJ) 53