50 lines
1.6 KiB
Makefile
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
|