gtk-app/app/core/makefile
Andrew Gundersen 7cc23bdabe python server
2021-01-18 11:43:46 -06:00

88 lines
1.8 KiB
Makefile

#################################################
#
# 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