PROG = pyramid OBJS = $(PROG).o math3d.o gltools.o glframe.o shader.o CC = gcc CFLAGS = -Wall -std=c99 DBGFLAGS = -g -O0 ifdef DEBUG CFLAGS += $(DBGFLAGS) else CFLAGS += -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).o: %.o: %.c math3d.h gltools.h glframe.h $(CC) -c $(CFLAGS) $(SDL_CFLAGS) $(SDL_image_CFLAGS) $< math3d.o: %.o: %.c %.h $(CC) -c $(CFLAGS) $< gltools.o: %.o: %.c %.h math3d.h $(CC) -c $(CFLAGS) $< glframe.o: %.o: %.c %.h math3d.h $(CC) -c $(CFLAGS) $< shader.o: %.o: %.c %.h math3d.h $(CC) -c $(CFLAGS) $< .PHONY: clean clean: rm -f *.o ./$(PROG)