EX=steve
OBJS=main.o draw_steve.o
# MinGW
ifeq "$(OS)" "Windows_NT"
CFLG=-O3 -Wall -DUSEGLEW
LIBS=-lglfw3 -lglew32 -lglu32 -lopengl32 -lm
CLEAN=del *.exe *.o *.d *.a
else
# OSX
ifeq "$(shell uname)" "Darwin"
RES=$(shell uname -r|sed -E 's/(.).*/\1/'|tr 12 21)
CFLG=-O3 -w -Wno-deprecated-declarations -DRES=$(RES) -I/opt/homebrew/include
LIBS=-framework OpenGL -L/opt/homebrew/lib -lglfw
CLEAN=rm -f $(EX) *.o *.d *.a
# Linux/Unix/Solaris
else
CFLG=-O3 -Wall -Werror
LIBS=-lglfw -lGLU -lGL -lm
CLEAN=rm -f $(EX) *.o *.d *.a
endif
endif
all: $(EX)
# Link
$(EX): $(OBJS)
gcc -o $@ $^ $(LIBS)
# Compile each .c to a .o (-MMD -MP writes .d files so header changes trigger rebuilds)
%.o: %.c
gcc -c $(CFLG) -MMD -MP -o $@ $<
# Pull in generated header dependencies
-include $(OBJS:.o=.d)
# Clean
clean:
$(CLEAN)
.PHONY: all clean