################################################# # # Makefile - Test GUI # # Crimata Technologies 2020 # ##################################################### CXX := -gcc CXXFLAGS := `pkg-config --cflags gtk+-3.0` LDFLAGS := \ -L/usr/lib \ -L/usr/local/lib \ -lfvad \ -lportaudio \ APP_NAME := Crimata BUILD_DIR := ./build OBJ_DIR := $(BUILD_DIR)/objects APP_DIR := $(BUILD_DIR)/apps EXE_DIR := $(BUILD_DIR)/apps/$(APP_NAME).app/Contents/MacOS INCLUDE := \ -I . \ -I include/ \ -I ../gui/include/ \ -I ../networking/include/ \ -I ../audio/include/ \ -I /usr/include/gtk-3.0 \ SRC := \ $(wildcard src/main.c) \ $(wildcard ../gui/src/gtk-cairo_api.c) \ $(wildcard ../gui/src/anims.c) \ $(wildcard ../gui/src/eases.c) \ $(wildcard ../networking/src/package_handler.c) \ $(wildcard ../audio/src/audio_handler.c) \ $(wildcard ../audio/src/frame_buffer.c) \ OBJECTS := $(SRC:%.c=$(OBJ_DIR)/%.o) # Rules all: kill clean build $(EXE_DIR)/$(APP_NAME) run # Compile all src files into object files into object directory $(OBJ_DIR)/%.o: %.c @mkdir -p $(@D) $(CXX) $(CXXFLAGS) $(INCLUDE) -c $< -o $@ # Link and make exe $(EXE_DIR)/$(APP_NAME): $(OBJECTS) @mkdir -p $(@D) $(CXX) $(CXXFLAGS) -o $@ $^ `pkg-config --libs gtk+-3.0` $(LDFLAGS) .PHONY: all build clean debug release build: @mkdir -p $(APP_DIR)/$(APP_NAME).app/Contents/{MacOS,Resources} @mkdir -p $(OBJ_DIR) @cp Info.plist $(APP_DIR)/$(APP_NAME).app/Contents/ @cp resources/* $(APP_DIR)/$(APP_NAME).app/Contents/Resources/ # debug: CXXFLAGS += -DDEBUG -g # debug: all # release: CXXFLAGS += -O2 # release: all run: $(EXE_DIR)/$(APP_NAME) # remove object file directories rm -rvf $(BUILD_DIR)/audio $(BUILD_DIR)/gui $(BUILD_DIR)/networking $< clean: -@rm -rvf $(BUILD_DIR)/* kill: @pkill $(APP_NAME) || true