BIN = pyramid SRC = pyramid.c math3d.c gltools.c glframe.c shader.c platform.c window.c \ gldraw.c sdltools.c luatools.c event.c CC = gcc CFLAGS = -Wall -std=gnu99 DBGFLAGS = -g -O0 ifdef DEBUG CFLAGS += $(DBGFLAGS) else CFLAGS += -O2 -march=native -mtune=native endif LDFLAGS = -lGLEW -lGL -lGLU -lm -lglut -llua 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) OBJ_DIR = obj OBJ_FILES = $(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(subst .c,,$(SRC)))) $(BIN): $(OBJ_DIR) $(OBJ_FILES) $(CC) $(LDFLAGS) $(SDL_LDFLAGS) $(SDL_image_LDFLAGS) $(OBJ_FILES) -o $@ $(OBJ_DIR)/pyramid.o: $(OBJ_DIR)/%.o: %.c gldraw.h glframe.h gltools.h luatools.h math3d.h platform.h sdltools.h window.h client.h $(CC) -c $(CFLAGS) $(SDL_CFLAGS) $(SDL_image_CFLAGS) $< -o $@ $(OBJ_DIR)/math3d.o: $(OBJ_DIR)/%.o: %.c %.h $(CC) -c $(CFLAGS) $< -o $@ $(OBJ_DIR)/gltools.o: $(OBJ_DIR)/%.o: %.c %.h $(CC) -c $(CFLAGS) $< -o $@ $(OBJ_DIR)/glframe.o: $(OBJ_DIR)/%.o: %.c %.h math3d.h glframe.h luatools.h gldraw.h gltools.h luatools.h sdltools.h $(CC) -c $(CFLAGS) $< -o $@ $(OBJ_DIR)/shader.o: $(OBJ_DIR)/%.o: %.c %.h $(CC) -c $(CFLAGS) $< -o $@ $(OBJ_DIR)/platform.o: $(OBJ_DIR)/%.o: %.c %.h $(CC) -c $(CFLAGS) $(SDL_CFLAGS) $(SDL_image_CFLAGS) $< -o $@ $(OBJ_DIR)/window.o: $(OBJ_DIR)/%.o: %.c %.h $(CC) -c $(CFLAGS) $(SDL_CFLAGS) $(SDL_image_CFLAGS) $< -o $@ $(OBJ_DIR)/gldraw.o: $(OBJ_DIR)/%.o: %.c %.h math3d.h $(CC) -c $(CFLAGS) $< -o $@ $(OBJ_DIR)/sdltools.o: $(OBJ_DIR)/%.o: %.c %.h math3d.h glframe.h $(CC) -c $(CFLAGS) $< -o $@ $(OBJ_DIR)/luatools.o: $(OBJ_DIR)/%.o: %.c %.h math3d.h $(CC) -c $(CFLAGS) $< -o $@ $(OBJ_DIR)/event.o: $(OBJ_DIR)/%.o: %.c %.h math3d.h client.h glframe.h platform.h window.h $(CC) -c $(CFLAGS) $< -o $@ $(OBJ_DIR): mkdir -p $(OBJ_DIR) .PHONY: clean info clean: @rm -rf $(OBJ_DIR) @rm -f $(BIN) info: @echo $(OBJ_FILES)