PROG = pyramid
OBJS = $(PROG).o math3d.o
CC = gcc
CFLAGS = -Wall -std=c99
DBGFLAGS = -g -O0
LDFLAGS = -lm
ifdef DEBUG
    CFLAGS += $(DBGFLAGS)
else
    CFLAGS += -O2 -march=native -mtune=native
endif
ifdef MINGW
    LDFLAGS += -lglew32 -lopengl32 -lglu32 -lfreeglut
else
    LDFLAGS += -lGLEW -lGL -lGLU -lglut
endif

$(PROG): $(OBJS)
	$(CC) -o $@ $(OBJS) $(LDFLAGS)

$(PROG).o: %.o: %.c math3d.h
	$(CC) -c $(CFLAGS) $<

math3d.o: %.o: %.c %.h
	$(CC) -c $(CFLAGS) $<

.PHONY: clean

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