Skip to content

Commit 1c47138

Browse files
committed
Upgrade Makefile
- Get argument as build target. - Check extension. - Prevent throwing error when no rule to make target.
1 parent 2eba6d7 commit 1c47138

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

Makefile

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,24 +54,33 @@ all: $(VENV)/bin/sphinx-build $(VENV)/bin/blurb clone ## Automatically build an
5454
. $(VENV)/bin/activate; $(MAKE) -C $(CPYTHON_CLONE)/Doc/ SPHINXOPTS='-j$(JOBS) -D locale_dirs=locales -D language=$(LANGUAGE) -D gettext_compact=0' $(MODE)
5555

5656
.PHONY: build
57-
build/%: $(VENV)/bin/sphinx-build $(VENV)/bin/blurb clone ## Automatically build an html local version
58-
@if [ ! -f "$*.po" ] ; then \
59-
echo "\x1B[1;31m""ERROR: $*.po not exist""\x1B[m"; \
57+
build: $(VENV)/bin/sphinx-build $(VENV)/bin/blurb clone ## Automatically build an html local version
58+
@$(eval target=$(filter-out $@,$(MAKECMDGOALS)))
59+
@if [ -z $(target) ]; then \
60+
echo "\x1B[1;31m""Please provide a file argument.""\x1B[m"; \
61+
exit 1; \
62+
fi
63+
@if [ "$(suffix $(target))" != ".po" ]; then \
64+
echo "\x1B[1;31m""Incorrect file extension. Only '.po' files are allowed.""\x1B[m"; \
65+
exit 1; \
66+
fi
67+
@if [[ ! -f "$(target)" ]] ; then \
68+
echo "\x1B[1;31m""ERROR: $(target) not exist.""\x1B[m"; \
6069
exit 1; \
6170
fi
6271
@mkdir -p $(LC_MESSAGES)
63-
@$(eval dir=`echo $* | xargs -n1 dirname`) ## Get dir
72+
@$(eval dir=`echo $(target) | xargs -n1 dirname`) ## Get dir
6473
# If the build target is in under directory
6574
# We should make direcotry in $(LC_MESSAGES) and link the file.
6675
@if [ $(dir) != "." ]; then \
6776
echo "mkdir -p $(LC_MESSAGES)/$(dir)"; \
6877
mkdir -p $(LC_MESSAGES)/$(dir); \
69-
echo "ln -f ./$*.po $(LC_MESSAGES)/$*.po"; \
70-
ln -f ./$*.po $(LC_MESSAGES)/$*.po; \
78+
echo "ln -f ./$(target) $(LC_MESSAGES)/$(target)"; \
79+
ln -f ./$(target) $(LC_MESSAGES)/$(target); \
7180
fi
7281
# Build
7382
@echo "----"
74-
@. $(VENV)/bin/activate; $(MAKE) -C $(CPYTHON_CLONE)/Doc/ SPHINXOPTS='-j$(JOBS) -D language=$(LANGUAGE) -D locale_dirs=locales -D gettext_compact=0' SOURCES='$*.rst' html
83+
@. $(VENV)/bin/activate; $(MAKE) -C $(CPYTHON_CLONE)/Doc/ SPHINXOPTS='-j$(JOBS) -D language=$(LANGUAGE) -D locale_dirs=locales -D gettext_compact=0' SOURCES='$(target).rst' html
7584

7685
help:
7786
@python3 -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)
@@ -150,3 +159,7 @@ fuzzy: ## Find fuzzy strings
150159
.PHONY: rm_cpython
151160
rm_cpython: ## Remove cloned cpython repo
152161
rm -rf $(CPYTHON_CLONE)
162+
163+
# This allows us to accept extra arguments (by doing nothing when we get a job that doesn't match, rather than throwing an error)
164+
%:
165+
@:

0 commit comments

Comments
 (0)