mirror of
https://github.com/Hopiu/linkchecker.git
synced 2026-03-16 22:10:26 +00:00
Update Makefile
This commit is contained in:
parent
728d826eb3
commit
ed1e3b874f
1 changed files with 15 additions and 167 deletions
182
Makefile
182
Makefile
|
|
@ -1,194 +1,42 @@
|
|||
# This Makefile is only used by developers.
|
||||
PYVER:=3
|
||||
PYTHON?=python$(PYVER)
|
||||
VERSION:=$(shell $(PYTHON) setup.py --version)
|
||||
PLATFORM:=$(shell $(PYTHON) -c "from __future__ import print_function; from distutils.util import get_platform; print(get_platform())")
|
||||
APPNAME:=$(shell $(PYTHON) setup.py --name)
|
||||
AUTHOR:=$(shell $(PYTHON) setup.py --author)
|
||||
MAINTAINER:=$(shell $(PYTHON) setup.py --maintainer)
|
||||
LAPPNAME:=$(shell echo $(APPNAME)|tr "[A-Z]" "[a-z]")
|
||||
ARCHIVE_SOURCE_EXT:=gz
|
||||
ARCHIVE_SOURCE:=$(APPNAME)-$(VERSION).tar.$(ARCHIVE_SOURCE_EXT)
|
||||
GITUSER:=linkchecker
|
||||
GITREPO:=$(LAPPNAME)
|
||||
HOMEPAGE:=$(HOME)/public_html/$(LAPPNAME)-webpage.git
|
||||
WEB_META:=doc/web/app.yaml
|
||||
DEBUILDDIR:=$(HOME)/projects/debian/official
|
||||
DEBORIGFILE:=$(DEBUILDDIR)/$(LAPPNAME)_$(VERSION).orig.tar.$(ARCHIVE_SOURCE_EXT)
|
||||
DEBPACKAGEDIR:=$(DEBUILDDIR)/$(APPNAME)-$(VERSION)
|
||||
FILESCHECK_URL:=http://localhost/~calvin/
|
||||
SRCDIR:=${HOME}/src
|
||||
PY_FILES_DIRS:=linkcheck tests *.py linkchecker cgi-bin config doc/examples scripts
|
||||
MYPY_FILES_DIRS:=linkcheck/HtmlParser linkcheck/checker \
|
||||
linkcheck/cache linkcheck/configuration linkcheck/director \
|
||||
linkcheck/htmlutil linkcheck/logger linkcheck/network \
|
||||
linkcheck/bookmarks linkcheck/plugins linkcheck/parser \
|
||||
$(filter-out %2.py,$(wildcard linkcheck/*.py)) \
|
||||
cgi-bin/lc.wsgi \
|
||||
linkchecker \
|
||||
*.py
|
||||
|
||||
TESTS ?= tests
|
||||
# set test options, eg. to "--verbose"
|
||||
TESTOPTS=
|
||||
PAGER ?= less
|
||||
# options to run the pep8 utility
|
||||
PEP8OPTS:=--repeat --ignore=E211,E501,E225,E301,E302,E241 \
|
||||
--exclude="robotparser2.py"
|
||||
PY2APPOPTS ?=
|
||||
ifeq ($(shell uname),Darwin)
|
||||
CHMODMINUSMINUS:=
|
||||
else
|
||||
CHMODMINUSMINUS:=--
|
||||
endif
|
||||
# Pytest options:
|
||||
# - use multiple processes
|
||||
# - write test results in file
|
||||
PYTESTOPTS:=-n 4 --resultlog=testresults.txt
|
||||
|
||||
|
||||
all:
|
||||
@echo "Read the file doc/install.txt to see how to build and install this package."
|
||||
|
||||
clean:
|
||||
-$(PYTHON) setup.py clean --all
|
||||
rm -f $(LAPPNAME)-out.* *-stamp*
|
||||
find . -name '*.py[co]' -exec rm -f {} \;
|
||||
find . -name '*.bak' -exec rm -f {} \;
|
||||
find . -depth -name '__pycache__' -exec rm -rf {} \;
|
||||
|
||||
distclean: clean
|
||||
rm -rf build dist $(APPNAME).egg-info
|
||||
rm -f _$(APPNAME)_configdata.py MANIFEST Packages.gz
|
||||
# clean aborted dist builds and -out files
|
||||
rm -f $(LAPPNAME)-out* $(LAPPNAME).prof
|
||||
rm -f alexa*.log testresults.txt
|
||||
rm -rf $(APPNAME)-$(VERSION)
|
||||
rm -rf coverage dist-stamp python-build-stamp*
|
||||
git clean -fdx
|
||||
|
||||
locale:
|
||||
$(MAKE) -C po
|
||||
|
||||
# to build in the current directory
|
||||
localbuild: locale
|
||||
$(PYTHON) setup.py build
|
||||
|
||||
release: distclean releasecheck filescheck
|
||||
$(MAKE) dist sign register upload homepage tag changelog deb
|
||||
|
||||
tag:
|
||||
git tag upstream/$(VERSION)
|
||||
git push --tags origin upstream/$(VERSION)
|
||||
test:
|
||||
hatch -e test run tests
|
||||
|
||||
upload:
|
||||
twine upload dist/$(ARCHIVE_SOURCE) dist/$(ARCHIVE_SOURCE).asc
|
||||
|
||||
twine upload dist/LinkChecker*
|
||||
|
||||
homepage:
|
||||
# update metadata
|
||||
@echo "version: \"$(VERSION)\"" > $(WEB_META)
|
||||
@echo "name: \"$(APPNAME)\"" >> $(WEB_META)
|
||||
@echo "lname: \"$(LAPPNAME)\"" >> $(WEB_META)
|
||||
@echo "maintainer: \"$(MAINTAINER)\"" >> $(WEB_META)
|
||||
@echo "author: \"$(AUTHOR)\"" >> $(WEB_META)
|
||||
git add $(WEBMETA)
|
||||
-git commit -m "Updated webpage meta info"
|
||||
# update documentation and man pages
|
||||
$(MAKE) -C doc man
|
||||
$(MAKE) -C doc/web release
|
||||
hatch -e doc run code
|
||||
hatch -e doc run html
|
||||
|
||||
register:
|
||||
@echo "Register at Python Package Index..."
|
||||
$(PYTHON) setup.py register
|
||||
@echo "done."
|
||||
dist:
|
||||
hatchling build
|
||||
|
||||
deb:
|
||||
# build a debian package
|
||||
[ -f $(DEBORIGFILE) ] || cp dist/$(ARCHIVE_SOURCE) $(DEBORIGFILE)
|
||||
sed -i -e 's/VERSION_$(LAPPNAME):=.*/VERSION_$(LAPPNAME):=$(VERSION)/' $(DEBUILDDIR)/$(LAPPNAME).mak
|
||||
[ -d $(DEBPACKAGEDIR) ] || (cd $(DEBUILDDIR); \
|
||||
patool extract $(DEBORIGFILE); \
|
||||
cd $(CURDIR); \
|
||||
git checkout debian; \
|
||||
cp -r debian $(DEBPACKAGEDIR); \
|
||||
rm -f $(DEBPACKAGEDIR)/debian/.gitignore; \
|
||||
git checkout master)
|
||||
$(MAKE) -C $(DEBUILDDIR) $(LAPPNAME)_clean $(LAPPNAME)
|
||||
|
||||
chmod:
|
||||
-chmod -R a+rX,u+w,go-w $(CHMODMINUSMINUS) *
|
||||
find . -type d -exec chmod 755 {} \;
|
||||
|
||||
dist: locale chmod
|
||||
rm -f dist/$(ARCHIVE_SOURCE)
|
||||
$(PYTHON) setup.py sdist --formats=tar
|
||||
gzip --best dist/$(APPNAME)-$(VERSION).tar
|
||||
|
||||
# The check programs used here are mostly local scripts on my private system.
|
||||
# So for other developers there is no need to execute this target.
|
||||
check:
|
||||
check-copyright
|
||||
check-pofiles -v
|
||||
py-tabdaddy $(MYPY_FILES_DIRS)
|
||||
py-unittest2-compat tests/
|
||||
$(MAKE) -C doc check
|
||||
$(MAKE) doccheck
|
||||
$(MAKE) pyflakes
|
||||
|
||||
doccheck:
|
||||
py-check-docstrings --force $(MYPY_FILES_DIRS)
|
||||
|
||||
filescheck: localbuild
|
||||
for out in text html gml sql csv xml gxml dot sitemap; do \
|
||||
./$(LAPPNAME) -o$$out -F$$out --complete -r1 -C $(FILESCHECK_URL) || exit 1; \
|
||||
done
|
||||
|
||||
update-copyright:
|
||||
update-copyright --holder="Bastian Kleineidam" $(PY_FILES_DIRS)
|
||||
flake8
|
||||
make -C doc check
|
||||
make -C po check
|
||||
|
||||
releasecheck: check
|
||||
@if egrep -i "xx\.|xxxx|\.xx" doc/changelog.txt > /dev/null; then \
|
||||
@if egrep -i "xx\.|xxxx|\.xx|^[[:digit:]]+\.x" doc/changelog.txt > /dev/null; then \
|
||||
echo "Could not release: edit doc/changelog.txt release date"; false; \
|
||||
fi
|
||||
$(PYTHON) setup.py check --restructuredtext
|
||||
|
||||
sign:
|
||||
for f in $(shell find dist -name *.$(ARCHIVE_SOURCE_EXT) -o -name *.exe -o -name *.zip -o -name *.dmg); do \
|
||||
[ -f $${f}.asc ] || gpg --detach-sign --armor $$f; \
|
||||
done
|
||||
|
||||
test: localbuild
|
||||
env LANG=en_US.utf-8 $(PYTHON) -m pytest $(PYTESTOPTS) $(TESTOPTS) $(TESTS)
|
||||
|
||||
pyflakes:
|
||||
pyflakes $(PY_FILES_DIRS) 2>&1 | \
|
||||
grep -v "local variable 'dummy' is assigned to but never used" | \
|
||||
grep -v -E "'(setuptools|win32com|find_executable|parse_sitemap|parse_sitemapindex|parse_bookmark_data|parse_bookmark_file|wsgiref|pyftpdlib|linkchecker_rc)' imported but unused" | \
|
||||
grep -v "undefined name '_'" | \
|
||||
grep -v "undefined name '_n'" | cat
|
||||
|
||||
pep8:
|
||||
pep8 $(PEP8OPTS) $(PY_FILES_DIRS)
|
||||
|
||||
# Compare custom Python files with the originals
|
||||
diff:
|
||||
@for f in gzip robotparser; do \
|
||||
echo "Comparing $${f}.py"; \
|
||||
diff -u linkcheck/$${f}2.py $(SRCDIR)/cpython.hg/Lib/$${f}.py | $(PAGER); \
|
||||
done
|
||||
@diff -u linkcheck/better_exchook.py $(SRCDIR)/py_better_exchook.git/better_exchook.py
|
||||
|
||||
changelog:
|
||||
github-changelog $(DRYRUN) $(GITUSER) $(GITREPO) doc/changelog.txt
|
||||
|
||||
count:
|
||||
@sloccount linkchecker linkcheck tests
|
||||
@sloccount linkcheck tests
|
||||
|
||||
# run eclipse ide
|
||||
ide:
|
||||
eclipse -data $(CURDIR)/..
|
||||
|
||||
.PHONY: test changelog count pyflakes ide login upload all clean distclean
|
||||
.PHONY: pep8 cleandeb locale localbuild deb diff dnsdiff sign
|
||||
.PHONY: filescheck update-copyright releasecheck check register announce
|
||||
.PHONY: chmod dist release homepage
|
||||
.PHONY: test count upload all clean
|
||||
.PHONY: locale dist homepage
|
||||
|
|
|
|||
Loading…
Reference in a new issue