LIBPATH=.
INCLUDEPATH=.
OBJ=.
SRC=.
OBJS=$(OBJ)/pngopers.o $(OBJ)/boxmuller.o

all: mdldenoise blocks bumps heavisine doppler

mdldenoise: $(OBJ)/mdldenoise.o $(OBJS)
	cc -L $(LIBPATH) -o mdldenoise $(OBJ)/mdldenoise.o $(OBJS) -lpng -lgsl -lm
        # you may need to add -lcblas (remember to add it before -lm!)

$(OBJ)/mdldenoise.o: $(SRC)/mdldenoise.c $(SRC)/mdldenoise.h $(SRC)/boxmuller.h
	cc -Wall -c -I $(INCLUDEPATH) -o $(OBJ)/mdldenoise.o $(SRC)/mdldenoise.c

$(OBJ)/pngopers.o: $(SRC)/pngopers.c $(SRC)/mdldenoise.h
	cc -Wall -c -I $(INCLUDEPATH) -o $(OBJ)/pngopers.o $(SRC)/pngopers.c

$(OBJ)/boxmuller.o: $(SRC)/boxmuller.c $(SRC)/mdldenoise.h
	cc -Wall -c -I $(INCLUDEPATH) -o $(OBJ)/boxmuller.o $(SRC)/boxmuller.c

blocks: $(SRC)/blocks.c
	cc -Wall -o blocks $(SRC)/blocks.c

bumps: $(SRC)/bumps.c
	cc -Wall -o bumps $(SRC)/bumps.c -lm

heavisine: $(SRC)/heavisine.c
	cc -Wall -o heavisine $(SRC)/heavisine.c -lm

doppler: $(SRC)/doppler.c
	cc -Wall -o doppler $(SRC)/doppler.c -lm
