MODULES = ../modules/
OPT     = -O3 -Wall -I. -I$(MODULES)   -lm
PRGNAME = cbims

all: $(PRGNAME)

$(PRGNAME): cbims.o ims.o $(MODULES)pnn.o $(MODULES)split.o $(MODULES)cb.o \
            $(MODULES)sa.o $(MODULES)sort.o $(MODULES)memctrl.o \
            $(MODULES)random.o $(MODULES)interfc.o $(MODULES)file.o \
            $(MODULES)sortcb.o $(MODULES)bintree.o $(MODULES)heap.o \
            $(MODULES)stack.o
	gcc -o $(PRGNAME) -lm $(OPT) cbims.o ims.o $(MODULES)pnn.o \
         $(MODULES)split.o $(MODULES)cb.o $(MODULES)sa.o $(MODULES)sort.o \
         $(MODULES)memctrl.o $(MODULES)random.o $(MODULES)interfc.o \
         $(MODULES)file.o $(MODULES)sortcb.o $(MODULES)bintree.o \
         $(MODULES)heap.o $(MODULES)stack.o

cbims.o: cbims.c
	gcc $(OPT) -c cbims.c

ims.o: ims.c
	gcc $(OPT) -c ims.c

$(MODULES)pnn.o: $(MODULES)pnn.c
	gcc $(OPT) -c $(MODULES)pnn.c -o $(MODULES)pnn.o

$(MODULES)split.o: $(MODULES)split.c
	gcc $(OPT) -c $(MODULES)split.c -o $(MODULES)split.o

$(MODULES)cb.o: $(MODULES)cb.c
	gcc $(OPT) -c $(MODULES)cb.c -o $(MODULES)cb.o

$(MODULES)sort.o: $(MODULES)sort.c
	gcc $(OPT) -c $(MODULES)sort.c -o $(MODULES)sort.o

$(MODULES)sortcb.o: $(MODULES)sortcb.c
	gcc $(OPT) -c $(MODULES)sortcb.c -o $(MODULES)sortcb.o

$(MODULES)sa.o: $(MODULES)sa.c
	gcc $(OPT) -c $(MODULES)sa.c -o $(MODULES)sa.o

$(MODULES)memctrl.o: $(MODULES)memctrl.c
	gcc $(OPT) -c $(MODULES)memctrl.c -o $(MODULES)memctrl.o

$(MODULES)random.o: $(MODULES)random.c
	gcc -c $(OPT) $(MODULES)random.c -o $(MODULES)random.o

$(MODULES)interfc.o: $(MODULES)interfc.c
	gcc $(OPT) -c $(MODULES)interfc.c -o $(MODULES)interfc.o

$(MODULES)file.o: $(MODULES)file.c
	gcc $(OPT) -c $(MODULES)file.c -o $(MODULES)file.o

$(MODULES)bintree.o: $(MODULES)bintree.c
	gcc $(OPT) -c $(MODULES)bintree.c -o $(MODULES)bintree.o

$(MODULES)heap.o: $(MODULES)heap.c
	gcc $(OPT) -c $(MODULES)heap.c -o $(MODULES)heap.o

$(MODULES)stack.o: $(MODULES)stack.c
	gcc $(OPT) -c $(MODULES)stack.c -o $(MODULES)stack.o


