Kaizen/external/unarr/test/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