Files
Microtransactions64/tools/Makefile
2024-07-01 21:45:36 -04:00

112 lines
3.5 KiB
Makefile

include ../util.mk
HOST_ENV := $(shell uname 2>/dev/null || echo Unknown)
HOST_ENV := $(patsubst MINGW%,MinGW,$(HOST_ENV))
CC := gcc
CXX := g++
CFLAGS := -I. -O2 -s
LDFLAGS := -lm
ALL_PROGRAMS := armips filesizer rncpack n64graphics n64graphics_ci mio0 slienc n64cksum textconv aifc_decode aiff_extract_codebook vadpcm_enc tabledesign extract_data_for_mio skyconv flips
LIBAUDIOFILE := audiofile/libaudiofile.a
ifeq ($(OS),Windows_NT)
EXT := .exe
OUTPUTS := $(ALL_PROGRAMS:=.exe)
else
EXT :=
OUTPUTS := $(ALL_PROGRAMS)
endif
# Only build armips from tools if it is not found on the system
ifeq ($(call find-command,armips),)
BUILD_PROGRAMS := $(ALL_PROGRAMS)
else
BUILD_PROGRAMS := $(filter-out armips,$(ALL_PROGRAMS))
endif
default: all
filesizer_SOURCES := filesizer.c
rncpack_SOURCES := rncpack.c
n64graphics_SOURCES := n64graphics.c utils.c
n64graphics_CFLAGS := -DN64GRAPHICS_STANDALONE
n64graphics_ci_SOURCES := n64graphics_ci_dir/n64graphics_ci.c n64graphics_ci_dir/exoquant/exoquant.c n64graphics_ci_dir/utils.c
mio0_SOURCES := libmio0.c
mio0_CFLAGS := -DMIO0_STANDALONE
slienc_SOURCES := slienc.c
slienc_CFLAGS :=
n64cksum_SOURCES := n64cksum.c utils.c
n64cksum_CFLAGS := -DN64CKSUM_STANDALONE
textconv_SOURCES := textconv.c utf8.c hashtable.c
aifc_decode_SOURCES := aifc_decode.c
aiff_extract_codebook_SOURCES := aiff_extract_codebook.c
tabledesign$(EXT): $(LIBAUDIOFILE)
tabledesign_SOURCES := sdk-tools/tabledesign/codebook.c sdk-tools/tabledesign/estimate.c sdk-tools/tabledesign/print.c sdk-tools/tabledesign/tabledesign.c
tabledesign_CFLAGS := -Iaudiofile -Wno-uninitialized
tabledesign_LDFLAGS := -Laudiofile -laudiofile -lstdc++
vadpcm_enc_SOURCES := sdk-tools/adpcm/vadpcm_enc.c sdk-tools/adpcm/vpredictor.c sdk-tools/adpcm/quant.c sdk-tools/adpcm/util.c sdk-tools/adpcm/vencode.c
vadpcm_enc_CFLAGS := -Wno-unused-result -Wno-uninitialized -Wno-sign-compare -Wno-absolute-value
extract_data_for_mio_SOURCES := extract_data_for_mio.c
skyconv_SOURCES := skyconv.c n64graphics.c utils.c
skyconv_CFLAGS := -g -I../include
armips$(EXT): CC := $(CXX)
armips_SOURCES := armips.cpp
armips_CFLAGS := -std=gnu++11 -fno-exceptions -fno-rtti -pipe
armips_LDFLAGS := -pthread
ifeq ($(HOST_ENV),MinGW)
armips_LDFLAGS += -municode
endif
flips$(EXT): CC := $(CXX)
flips_SOURCES := FlipsSrc/Flips.cpp
ifeq ($(OS),Windows_NT)
flips_CFLAGS := -Wall -Wextra -fopenmp -Os -flto -fuse-linker-plugin -fomit-frame-pointer -fmerge-all-constants \
-fvisibility=hidden -fno-exceptions -fno-rtti -fno-unwind-tables -fno-asynchronous-unwind-tables \
-ffunction-sections -fdata-sections -Wl,--gc-sections
else
flips_CFLAGS := -Wall -Wextra -fopenmp -Os -flto -fuse-linker-plugin -fomit-frame-pointer -fmerge-all-constants \
-fvisibility=hidden -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables \
-ffunction-sections -fdata-sections -Wl,--gc-sections \
-fvisibility=hidden -fno-exceptions -fno-rtti -fno-unwind-tables -fno-asynchronous-unwind-tables \
-ffunction-sections -fdata-sections -Wl,--gc-sections \
-Wl,-z,relro,-z,now,--as-needed,--hash-style=gnu,--relax
endif
all-except-recomp: $(LIBAUDIOFILE) $(OUTPUTS)
all: all-except-recomp
clean:
$(RM) $(ALL_PROGRAMS)
$(RM) UNFLoader*
$(MAKE) -C audiofile clean
distclean: clean
define COMPILE
$(1)$$(EXT): $($1_SOURCES)
$$(CC) $(CFLAGS) $($1_CFLAGS) $$^ -o $(1) $($1_LDFLAGS) $(LDFLAGS)
endef
$(foreach p,$(BUILD_PROGRAMS),$(eval $(call COMPILE,$(p))))
$(LIBAUDIOFILE):
@$(MAKE) -C audiofile
.PHONY: all all-except-recomp clean distclean default