83 lines
1.7 KiB
Makefile
83 lines
1.7 KiB
Makefile
export
|
|
|
|
SHELL = /usr/bin/env bash
|
|
|
|
ROOT := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
|
|
|
|
ifneq ($(realpath $(ROOT)/config.mk), $(ROOT)/config.mk)
|
|
$(error ERROR: Please run the configure script before building.)
|
|
endif
|
|
|
|
include $(ROOT)/config.mk
|
|
|
|
#
|
|
# User settings
|
|
#
|
|
|
|
BUILD_DIR = build
|
|
|
|
SOURCE_DIR = src
|
|
CORE_DIR = core
|
|
ASSETS_DIR = assets
|
|
ASSET_BUILDER_DIR = asset_builder
|
|
|
|
OUTPUT = 2D_Engine
|
|
ASSET_OUTPUT = game.data
|
|
ASSET_BUILDER_OUTPUT = asset_builder/asset_builder
|
|
|
|
ifneq ($(DEBUG),)
|
|
TARGET_HOST_CFLAGS += -O1 -g -DDEBUG=$(DEBUG) -Wextra -Wall --pedantic -Wno-missing-braces \
|
|
-Wno-missing-field-initializers -Wformat=2 -Wswitch-default -Wswitch \
|
|
-Wcast-align -Wpointer-arith -Wbad-function-cast -Wstrict-overflow=5 \
|
|
-Wstrict-prototypes -Winline -Wundef -Wnested-externs -Wcast-qual \
|
|
-Wshadow -Wunreachable-code -Wlogical-op -Wfloat-equal -Wstrict-aliasing=2 \
|
|
-Wredundant-decls -Wold-style-definition
|
|
endif
|
|
|
|
#
|
|
# End
|
|
#
|
|
|
|
# Relocate vars
|
|
BUILD_DIR := $(ROOT)/$(BUILD_DIR)/$(TARGET_HOST)
|
|
|
|
SOURCE_DIR := $(ROOT)/$(SOURCE_DIR)
|
|
CORE_DIR := $(ROOT)/$(CORE_DIR)
|
|
ASSETS_DIR := $(ROOT)/$(ASSETS_DIR)
|
|
ASSET_BUILDER_DIR := $(ROOT)/$(ASSET_BUILDER_DIR)
|
|
|
|
OUTPUT := $(BUILD_DIR)/$(OUTPUT)
|
|
LIBCORE := $(BUILD_DIR)/$(LIBCORE)
|
|
ASSET_OUTPUT := $(BUILD_DIR)/$(ASSET_OUTPUT)
|
|
ASSET_BUILDER_OUTPUT := $(BUILD_DIR)/$(ASSET_BUILDER_OUTPUT)
|
|
|
|
# Verbosity
|
|
export Q := @
|
|
ifeq ($(VERBOSE), 1)
|
|
Q :=
|
|
endif
|
|
|
|
# Colors
|
|
GREEN := \033[32m
|
|
YELLOW := \033[33m
|
|
RESET := \033[m
|
|
|
|
# Default targets
|
|
all: $(OUTPUT) $(ASSET_OUTPUT)
|
|
|
|
$(OUTPUT):
|
|
$(Q)cd $(SOURCE_DIR) && $(MAKE) $@
|
|
|
|
$(ASSET_OUTPUT):
|
|
$(Q)cd $(ASSETS_DIR) && $(MAKE) $@
|
|
|
|
.PHONY: clean run print-var-%
|
|
clean:
|
|
$(Q)rm -rf $(dir $(BUILD_DIR))
|
|
|
|
run: all
|
|
$(Q)cd $(BUILD_DIR) && ./$(notdir $(OUTPUT))
|
|
|
|
print-var-% :
|
|
@echo $($*)
|