ACE3/Makefile

82 lines
3.0 KiB
Makefile
Raw Normal View History

2016-07-11 14:30:51 +00:00
PREFIX = ace
BIN = @ace
ZIP = ace3
FLAGS = -i include -w unquoted-string -w redefinition-wo-undef
MAJOR = $(shell grep "^\#define[[:space:]]*MAJOR" addons/main/script_version.hpp | egrep -m 1 -o '[[:digit:]]+')
MINOR = $(shell grep "^\#define[[:space:]]*MINOR" addons/main/script_version.hpp | egrep -m 1 -o '[[:digit:]]+')
PATCH = $(shell grep "^\#define[[:space:]]*PATCHLVL" addons/main/script_version.hpp | egrep -m 1 -o '[[:digit:]]+')
BUILD = $(shell grep "^\#define[[:space:]]*BUILD" addons/main/script_version.hpp | egrep -m 1 -o '[[:digit:]]+')
VERSION = $(MAJOR).$(MINOR).$(PATCH)
VERSION_FULL = $(VERSION).$(BUILD)
ifeq ($(OS), Windows_NT)
ifeq ($(PROCESSOR_ARCHITEW6432), AMD64)
ARMAKE = ./tools/armake_w64.exe
else
ifeq ($(PROCESSOR_ARCHITECTURE), AMD64)
ARMAKE = ./tools/armake_w64.exe
else
ARMAKE = ./tools/armake_w32.exe
endif
endif
else
ARMAKE = armake
endif
2016-07-11 14:30:51 +00:00
$(BIN)/addons/$(PREFIX)_%.pbo: addons/%
@mkdir -p $(BIN)/addons
2016-05-02 14:39:47 +00:00
@echo " PBO $@"
@${ARMAKE} build ${FLAGS} -f $< $@
2016-05-02 14:39:47 +00:00
2016-07-11 14:30:51 +00:00
$(BIN)/optionals/$(PREFIX)_%.pbo: optionals/%
@mkdir -p $(BIN)/optionals
@echo " PBO $@"
@${ARMAKE} build ${FLAGS} -f $< $@
2016-05-02 14:39:47 +00:00
2016-07-11 14:30:51 +00:00
# Shortcut for building single addons (eg. "make <component>.pbo")
%.pbo:
2016-07-11 14:30:51 +00:00
"$(MAKE)" $(MAKEFLAGS) $(patsubst %, $(BIN)/addons/$(PREFIX)_%, $@)
2016-07-11 14:30:51 +00:00
all: $(patsubst addons/%, $(BIN)/addons/$(PREFIX)_%.pbo, $(wildcard addons/*)) \
$(patsubst optionals/%, $(BIN)/optionals/$(PREFIX)_%.pbo, $(wildcard optionals/*))
2016-05-02 14:39:47 +00:00
2016-05-28 18:33:49 +00:00
filepatching:
"$(MAKE)" $(MAKEFLAGS) FLAGS="-w unquoted-string -p"
2016-05-28 18:33:49 +00:00
2016-05-21 14:21:51 +00:00
$(BIN)/keys/%.biprivatekey:
@mkdir -p $(BIN)/keys
@echo " KEY $@"
@${ARMAKE} keygen -f $(patsubst $(BIN)/keys/%.biprivatekey, $(BIN)/keys/%, $@)
2016-05-21 14:21:51 +00:00
2016-07-11 14:30:51 +00:00
$(BIN)/addons/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION_FULL).bisign: $(BIN)/addons/$(PREFIX)_%.pbo $(BIN)/keys/$(PREFIX)_$(VERSION_FULL).biprivatekey
2016-05-21 14:21:51 +00:00
@echo " SIG $@"
@${ARMAKE} sign -f $(BIN)/keys/$(PREFIX)_$(VERSION_FULL).biprivatekey $<
2016-05-21 14:21:51 +00:00
2016-07-11 14:30:51 +00:00
$(BIN)/optionals/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION_FULL).bisign: $(BIN)/optionals/$(PREFIX)_%.pbo $(BIN)/keys/$(PREFIX)_$(VERSION_FULL).biprivatekey
2016-05-21 14:21:51 +00:00
@echo " SIG $@"
@${ARMAKE} sign -f $(BIN)/keys/$(PREFIX)_$(VERSION_FULL).biprivatekey $<
2016-05-21 14:21:51 +00:00
2016-07-11 14:30:51 +00:00
signatures: $(patsubst addons/%, $(BIN)/addons/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION_FULL).bisign, $(wildcard addons/*)) \
$(patsubst optionals/%, $(BIN)/optionals/$(PREFIX)_%.pbo.$(PREFIX)_$(VERSION_FULL).bisign, $(wildcard optionals/*))
2016-05-21 14:21:51 +00:00
2016-05-02 14:39:47 +00:00
extensions: $(wildcard extensions/*/*)
cd extensions/build && cmake .. && make
find ./extensions/build/ \( -name "*.so" -o -name "*.dll" \) -exec cp {} ./ \;
extensions-win64: $(wildcard extensions/*/*)
cd extensions/build && CXX=$(eval $(which g++-w64-mingw-i686)) cmake .. && make
clean:
2016-07-11 14:30:51 +00:00
rm -rf $(BIN) $(ZIP)_*.zip
2016-05-29 20:28:37 +00:00
release:
@"$(MAKE)" clean
@"$(MAKE)" $(MAKEFLAGS) signatures
2017-02-07 03:51:07 +00:00
@echo " ZIP $(ZIP)_$(VERSION).zip"
@cp *.dll AUTHORS.txt LICENSE logo_ace3_ca.paa meta.cpp mod.cpp README.md docs/README_DE.md docs/README_PL.md $(BIN)
2017-02-07 03:30:22 +00:00
@cp -r extras/userconfig $(BIN)/optionals
2016-07-11 14:30:51 +00:00
@zip -r $(ZIP)_$(VERSION).zip $(BIN) &> /dev/null
2016-05-28 18:33:49 +00:00
.PHONY: release