1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
# *_DIR variables refer to single level subdirectories of the top level topplot
# source directory. This simplifies the sed usage throughout this file.
BUILD_DIR:=build
DIST_DIR:=dist
ENV_DIR:=envdir
LOG_DIR:=logs
LOG_FILES:=$(wildcard $(LOG_DIR)/top.*.log)
PNG_FILES:=$(subst .,_,$(LOG_FILES))
PNG_FILES:=$(subst /,_,$(PNG_FILES))
PNG_FILES:=$(shell echo $(PNG_FILES) | sed -n 's/\([^ ]\+\) \?/$(DIST_DIR)\/\1_overview.png /gp')
TEST_DIR:=tests.d
TEST_EXE:=$(ENV_DIR)/bin/topplot
TOPPLOT_VERSION:=$(shell sed -n 's/^\s*version="\(.*\)",$$/\1/p' setup.py)
TOPPLOT_WHEEL:=$(DIST_DIR)/topplot-$(TOPPLOT_VERSION)-py3-none-any.whl
#-------------------------------------------------------------------------------
.PHONY: build clean test test-upload upload
.ONESHELL: # Allow multiline recipes
#-------------------------------------------------------------------------------
clean:
rm -rf $(BUILD_DIR) $(DIST_DIR) $(ENV_DIR) $(TEST_DIR) *.egg-info
#-------------------------------------------------------------------------------
$(TOPPLOT_WHEEL): setup.py topplot/*.py topplot/*.png
python3 setup.py sdist bdist_wheel
build: $(TOPPLOT_WHEEL)
#-------------------------------------------------------------------------------
$(TEST_EXE): $(TOPPLOT_WHEEL)
[ -d $(ENV_DIR) ] && rm -rf $(ENV_DIR)
python3 -m venv $(ENV_DIR)
. $(ENV_DIR)/bin/activate
pip3 install $(TOPPLOT_WHEEL)
install: $(TEST_EXE)
#-------------------------------------------------------------------------------
$(PNG_FILES): $(TEST_EXE) $(LOG_FILES)
[ -d $(TEST_DIR) ] || mkdir -p $(TEST_DIR)
. $(ENV_DIR)/bin/activate
$(TEST_EXE) -f $(LOG_DIR)/$(shell echo $(@F) | sed -e 's/'$(LOG_DIR)'_top_\(.*\)_log_overview\.png/top.\1.log/') -g0pcCQ --outputdir $(TEST_DIR)
test: $(PNG_FILES)
#-------------------------------------------------------------------------------
test-upload: $(TOPPLOT_WHEEL)
echo ebardie | twine upload --verbose --repository-url https://test.pypi.org/legacy/ $(DIST_DIR)/*
sleep 3
upload: clean $(TOPPLOT_WHEEL) $(PNG_FILES)
echo ebardie | twine upload --verbose $(DIST_DIR)/*
#-------------------------------------------------------------------------------
|