CC = gcc BIN_DIR = bin BINARY = main SDL_BINARY = sdl OBJS = main.o ktkMap.o ktkStructure.o ktkProgram.o ktk_parse.o OBJ_DIR = obj VPATH = src CFLAGS = -Wall -Isrc/ -g -c LFLAGS = -Wall SDL_INCLUDE = -I/usr/include SDL_OBJS = sdl_main.o ktkMap.o ktkStructure.o ktkProgram.o ktk_parse.o SYS := $(shell uname) ifeq ($(OS),Windows_NT) CFLAGS += $(SDL_INCLUDE) SDL_LFLAGS += -lmingw32 -lSDLmain SDL_LFLAGS += -lSDL BINARY = main.exe SDL_BINARY = sdl.exe else ifeq ($(SYS),Darwin) SDL_OBJS += SDLMain.o SDL_LFLAGS += -framework SDL -framework Cocoa SDL_CFLAGS += -I/Library/Frameworks/SDL.framework/Headers else SDL_LFLAGS += -lSDL LFLAGS += -lm endif main: $(MAKE) $(BIN_DIR)/$(BINARY) all: $(MAKE) $(BIN_DIR)/$(BINARY) $(MAKE) $(BIN_DIR)/$(SDL_BINARY) $(MAKE) tools sdl: $(MAKE) $(BIN_DIR)/$(SDL_BINARY) $(BIN_DIR)/$(BINARY): $(patsubst %,$(OBJ_DIR)/%,$(OBJS)) mkdir -p $(BIN_DIR) $(CC) $(LFLAGS) $^ -o $@ $(BIN_DIR)/$(SDL_BINARY): $(patsubst %,$(OBJ_DIR)/%,$(SDL_OBJS)) mkdir -p $(BIN_DIR) $(CC) -o $@ $^ $(LFLAGS) $(SDL_LFLAGS) tools: tools/tobmp $(MAKE) -C tools clean: rm -f $(OBJ_DIR)/*.o && rm -f $(BIN_DIR)/$(BINARY) && rm -f $(BIN_DIR)/$(SDL_BINARY) cd tools && make clean main.o: main.c ktkMap.c ktkMap.h ktk_parse.h $(CC) $(CFLAGS) main.c $(OBJ_DIR)/%.o: %.c mkdir -p $(OBJ_DIR) $(CC) $(CFLAGS) $< -o $@ $(OBJ_DIR)/SDLMain.o: SDLMain.m $(CC) $(CFLAGS) $(SDL_CFLAGS) $< -o $@