yggdrasil-go/makefile
2022-12-09 15:09:36 +02:00

37 lines
1.1 KiB
Makefile

ALL_ARCHS=amd64
ALL_OS=linux windows macos
ALL_PLATFORMS=linux-amd64 windows-amd64 macos-amd64
ALL_EXE=mesh meshctl mesh_ui
OUT_DIR=built
PATH:=/devroot/toolchain/amd64-w64-mingw32-seh-cpp20/bin:$(PATH)
take=$(word $1,$(subst -, ,$2))
all: $(ALL_PLATFORMS)
$(addprefix $(OUT_DIR)/,$(ALL_PLATFORMS)):
mkdir -p $@
linux-amd64: $(addprefix linux-amd64-,$(ALL_EXE))
windows-amd64: $(addprefix windows-amd64-,$(ALL_EXE))
windows-amd64-%: BUILD_ENV=CGO_ENABLED=1 CC=amd64-w64-mingw32-gcc CXX=amd64-w64-mingw32-g++
macos-amd64: $(addprefix macos-amd64-,$(ALL_EXE))
macos-amd64-%: BUILD_ENV=GO111MODULE=on
$(foreach platf, $(ALL_PLATFORMS), $(addprefix $(platf)-,$(ALL_EXE))):
$(MAKE) $(OUT_DIR)/$(call take,1,$@)-$(call take,2,$@)
GOOS=$(call take,1,$@) GOARCH=$(call take,2,$@) $(BUILD_ENV) ./build -g $(call take,3,$@) -b $(OUT_DIR)/$(call take,1,$@)-$(call take,2,$@)
clean:
help:
@echo "Targets:"
@echo $(ALL_PLATFORMS)
@echo $(addprefix linux-amd64-,$(ALL_EXE))
@echo $(addprefix windows-amd64-,$(ALL_EXE))
@echo $(addprefix macos-amd64-,$(ALL_EXE))