rexforge/Makefile
2025-02-20 13:07:18 +01:00

50 lines
1.6 KiB
Makefile

VERSION_FILE := VERSION.txt
REX_VERSION := $(shell bash ./generate_version.sh)
RELEASE_NAME := rexforge_$(REX_VERSION)
export REX_VERSION
help:
@echo -e "Makefile for $(RELEASE_NAME)\n"
@echo -e "Make can also be ran from either of the individual project subdirectories\n"
@echo "Available targets:"
@echo " build - Build binaries"
@echo " release - Create a release version and package"
@echo " clean - Clean up build files"
@echo " container - Build an OCI container (requires podman)"
@echo " help - Show this help message"
build: $(RELEASE_NAME)
make -C ./rex_client REX_VERSION=$(REX_VERSION)
make -C ./rex_server REX_VERSION=$(REX_VERSION)
release: $(RELEASE_NAME)
make -C ./rex_client REX_VERSION=$(REX_VERSION)
make -C ./rex_server REX_VERSION=$(REX_VERSION)
mv ./rex_client/rexclient $(RELEASE_NAME)
mv ./rex_server/rexserver $(RELEASE_NAME)
cp ./LICENSE.txt $(RELEASE_NAME)
cp ./README.md $(RELEASE_NAME)
mkdir -p $(RELEASE_NAME)/source
echo $(REX_VERSION) > $(RELEASE_NAME)/source/VERSION.txt
git ls-files | xargs -I{} cp --parents {} $(RELEASE_NAME)/source
date -I > $(RELEASE_NAME)/INFO.txt
echo $(REX_VERSION) >> $(RELEASE_NAME)/INFO.txt
go version >> $(RELEASE_NAME)/INFO.txt
tar cvzf $(RELEASE_NAME).tar.gz $(RELEASE_NAME)
$(RELEASE_NAME):
mkdir -p $@
container:
podman build -t rexserver:$(REX_VERSION) --env REX_VERSION -f container/Containerfile .
podman tag localhost/rexserver:$(REX_VERSION) localhost/rexserver:latest
podman images localhost/rexserver
clean:
make -C ./rex_client clean
make -C ./rex_server clean
rm -rf *.tar.gz
rm -rf rexforge_*
.PHONY: release clean container help