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