mirror of
https://github.com/SimoneN64/Kaizen.git
synced 2025-04-02 10:41:53 -04:00
74 lines
1.5 KiB
Makefile
74 lines
1.5 KiB
Makefile
# GNU Makefile
|
|
|
|
build ?= debug
|
|
|
|
OUT := build/$(build)
|
|
|
|
default: all
|
|
|
|
# --- Configuration ---
|
|
|
|
CFLAGS += -Wall -D_FILE_OFFSET_BITS=64
|
|
LIBS += -lm
|
|
|
|
ifeq "$(build)" "debug"
|
|
CFLAGS += -pipe -g -DDEBUG
|
|
else ifeq "$(build)" "profile"
|
|
CFLAGS += -pipe -O3 -DNDEBUG -pg
|
|
LDFLAGS += -pg
|
|
else ifeq "$(build)" "release"
|
|
CFLAGS += -pipe -O3 -DNDEBUG -fomit-frame-pointer
|
|
else ifeq "$(build)" "coverage"
|
|
CFLAGS += -pipe -g -DDEBUG -pg -fprofile-arcs -ftest-coverage
|
|
LIBS += -lgcov
|
|
else
|
|
$(error unknown build setting: '$(build)')
|
|
endif
|
|
|
|
# --- Commands ---
|
|
|
|
ifneq "$(verbose)" "yes"
|
|
QUIET_AR = @ echo ' ' ' ' AR $@ ;
|
|
QUIET_CC = @ echo ' ' ' ' CC $@ ;
|
|
QUIET_LINK = @ echo ' ' ' ' LINK $@ ;
|
|
endif
|
|
|
|
CC_CMD = $(QUIET_CC) mkdir -p $(@D) ; $(CC) $(CFLAGS) -o $@ -c $<
|
|
AR_CMD = $(QUIET_AR) $(AR) cr $@ $^
|
|
LINK_CMD = $(QUIET_LINK) $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
|
|
|
# --- Third party libraries ---
|
|
|
|
# TODO: build zlib, bzip2 and 7z when available
|
|
|
|
# --- unarr files ---
|
|
|
|
UNARR_OUT := $(OUT)/unarr
|
|
|
|
UNARR_DIRS := .. ../common ../lzmasdk ../rar ../tar ../zip ../_7z
|
|
UNARR_SRC := $(wildcard $(UNARR_DIRS:=/*.c))
|
|
UNARR_OBJ := $(addprefix $(UNARR_OUT)/, $(addsuffix .o, $(basename $(UNARR_SRC))))
|
|
|
|
$(UNARR_OUT)/%.o : %.c
|
|
$(CC_CMD)
|
|
|
|
UNARR_LIB := $(OUT)/libunarr.a
|
|
|
|
$(UNARR_LIB): $(UNARR_OBJ)
|
|
$(AR_CMD)
|
|
|
|
UNARR_TEST := $(OUT)/unarr-test
|
|
|
|
$(UNARR_TEST) : $(UNARR_OUT)/main.o $(UNARR_LIB)
|
|
$(LINK_CMD)
|
|
|
|
# TODO: add header dependencies
|
|
|
|
# --- Clean and Default ---
|
|
|
|
all: $(UNARR_TEST)
|
|
|
|
clean:
|
|
rm -rf build
|
|
|
|
.PHONY: all clean
|