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