48 lines
1.7 KiB
Makefile
48 lines
1.7 KiB
Makefile
|
|
PREFIX ?= $(HOME)/.local
|
||
|
|
PYTHON ?= python3
|
||
|
|
|
||
|
|
SHARE_DIR := $(PREFIX)/share
|
||
|
|
APP_DIR := $(SHARE_DIR)/lvpwb
|
||
|
|
PACKAGE_DIR := $(APP_DIR)/lvpwb
|
||
|
|
BIN_DIR := $(PREFIX)/bin
|
||
|
|
LAUNCHER := $(BIN_DIR)/lvpwb
|
||
|
|
|
||
|
|
ROSTERS := smackdown1roster.json smackdown2roster.json smackdown3roster.json
|
||
|
|
LOGOS := smackdown-logo-source.png raw-is-war-logo.png wwfcomlogo.gif
|
||
|
|
|
||
|
|
.PHONY: help install uninstall verify
|
||
|
|
|
||
|
|
help:
|
||
|
|
@echo "make install Install LVPWB under $(PREFIX)"
|
||
|
|
@echo "make verify Check the installed package and launcher"
|
||
|
|
@echo "make uninstall Remove installed code and launcher (keeps saved data)"
|
||
|
|
@echo "Set PREFIX to change the installation prefix; set PYTHON to choose Python."
|
||
|
|
|
||
|
|
install:
|
||
|
|
install -d "$(PACKAGE_DIR)" "$(BIN_DIR)"
|
||
|
|
install -m 644 lvpwb/*.py "$(PACKAGE_DIR)/"
|
||
|
|
install -m 644 $(ROSTERS) $(LOGOS) "$(APP_DIR)/"
|
||
|
|
@printf '%s\n' \
|
||
|
|
'#!/bin/sh' \
|
||
|
|
'export PYTHONPATH="$(APP_DIR)$${PYTHONPATH:+:$$PYTHONPATH}"' \
|
||
|
|
'exec "$(PYTHON)" -m lvpwb "$$@"' \
|
||
|
|
> "$(LAUNCHER)"
|
||
|
|
chmod 755 "$(LAUNCHER)"
|
||
|
|
@case ":$$PATH:" in \
|
||
|
|
*":$(BIN_DIR):"*) echo "$(BIN_DIR) is already in PATH" ;; \
|
||
|
|
*) echo 'Add $(BIN_DIR) to PATH: export PATH="$(BIN_DIR):$$PATH"' ;; \
|
||
|
|
esac
|
||
|
|
|
||
|
|
verify:
|
||
|
|
test -d "$(PACKAGE_DIR)"
|
||
|
|
test -x "$(LAUNCHER)"
|
||
|
|
PYTHONPATH="$(APP_DIR)$${PYTHONPATH:+:$$PYTHONPATH}" "$(PYTHON)" -c \
|
||
|
|
'import lvpwb; assert len(lvpwb.load_roster("sd1")) > 0; print("LVPWB package and roster verified")'
|
||
|
|
@"$(LAUNCHER)" </dev/null >/dev/null
|
||
|
|
|
||
|
|
uninstall:
|
||
|
|
rm -f "$(LAUNCHER)"
|
||
|
|
rm -rf "$(PACKAGE_DIR)"
|
||
|
|
@for asset in $(ROSTERS) $(LOGOS); do rm -f "$(APP_DIR)/$$asset"; done
|
||
|
|
@rmdir "$(APP_DIR)" 2>/dev/null || true
|
||
|
|
@echo "Removed LVPWB code and launcher. Saved cards, seasons, and custom games were preserved."
|