PROG = objloader
OBJS = $(PROG).o obj.o
CC = gcc
DBGFLAGS = -g -O0
ifdef DEBUG
    CFLAGS = $(DBGFLAGS) -Wall -std=c99
else
    CFLAGS = -Wall -std=c99 -O2 -march=native -mtune=native
endif
LDFLAGS = -lGLEW -lGL -lGLU -lm -lglut
SDL_CFLAGS := $(shell sdl-config --cflags)
SDL_LDFLAGS := $(shell sdl-config --libs)
SDL_image_CFLAGS := $(shell pkg-config --cflags SDL_image)
SDL_image_LDFLAGS := $(shell pkg-config --libs SDL_image)

$(PROG): $(OBJS)
	$(CC) $(LDFLAGS) $(SDL_LDFLAGS) $(SDL_image_LDFLAGS) $(OBJS) -o $(PROG)

$(PROG).o: $(PROG).c math3d.h
	$(CC) -c $(CFLAGS) $(SDL_CFLAGS) $(SDL_image_CFLAGS) $(PROG).c
	
math3d.o: math3d.c math3d.h
	$(CC) -c $(CFLAGS) math3d.c

obj.o: obj.c obj.h
	$(CC) -c $(CFLAGS) obj.c

.PHONY: clean

clean:
	rm -f *.o ./$(PROG)