diff options
author | Mattias Andrée <maandree@kth.se> | 2021-02-19 22:10:26 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2021-02-19 22:10:26 +0100 |
commit | ec7baa81e8fd4bec924d6adf3ee880af621a10ba (patch) | |
tree | 700434a1a65c55584dff270ed45e4bdfd46f6ab3 /Makefile | |
parent | Add blue hour (diff) | |
download | solar-python-ec7baa81e8fd4bec924d6adf3ee880af621a10ba.tar.gz solar-python-ec7baa81e8fd4bec924d6adf3ee880af621a10ba.tar.bz2 solar-python-ec7baa81e8fd4bec924d6adf3ee880af621a10ba.tar.xz |
Imrpove makefile and flatten the hier a bit
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 196 |
1 files changed, 17 insertions, 179 deletions
@@ -1,194 +1,32 @@ -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without any warranty. +.POSIX: - -# The package path prefix, if you want to install to another root, set DESTDIR to that root PREFIX = /usr -# The library path excluding prefix -LIB = /lib -# The resource path excluding prefix -DATA = /share -# The library path including prefix -LIBDIR = $(PREFIX)$(LIB) -# The resource path including prefix -DATADIR = $(PREFIX)$(DATA) -# The generic documentation path including prefix -DOCDIR = $(DATADIR)/doc -# The info manual documentation path including prefix -INFODIR = $(DATADIR)/info -# The license base path including prefix -LICENSEDIR = $(DATADIR)/licenses - -# The name of the package as it should be installed -PKGNAME = solar-python - -# The major version number of the current Python installation -PY_MAJOR = 3 -# The minor version number of the current Python installation -PY_MINOR = 5 -# The version number of the current Python installation without a dot -PY_VER = $(PY_MAJOR)$(PY_MINOR) -# The version number of the current Python installation with a dot -PY_VERSION = $(PY_MAJOR).$(PY_MINOR) - -# The modules this library is comprised of -SRC = solar_python - -# Filename extension for -OO optimised python files -ifeq ($(shell test $(PY_VER) -ge 35 ; echo $$?),0) -PY_OPT2_EXT = opt-2.pyc -else -PY_OPT2_EXT = pyo -endif - - - -.PHONY: default -default: base info - -.PHONY: all -all: base doc - -.PHONY: base -base: compiled optimised +PYTHON_MAJOR = $$(python --version 2>&1 | cut -d . -f 1 | cut -d ' ' -f 2) +PYTHON_MINOR = $$(python$(PYTHON_MAJOR) --version 2>&1 | cut -d . -f 2) -.PHONY: compiled -compiled: $(foreach M,$(SRC),src/__pycache__/$(M).cpython-$(PY_VER).pyc) +all: + @true -.PHONY: optimised -optimised: $(foreach M,$(SRC),src/__pycache__/$(M).cpython-$(PY_VER).$(PY_OPT2_EXT)) +info: solar-python.info - -src/__pycache__/%.cpython-$(PY_VER).pyc: src/%.py - python -m compileall $< - -src/__pycache__/solar_python.cpython-$(PY_VER).$(PY_OPT2_EXT): src/solar_python.py - python -OO -m compileall $< - - -.PHONY: doc -doc: info pdf dvi ps - -.PHONY: info -info: bin/solar-python.info -bin/%.info: doc/info/%.texinfo - @mkdir -p bin +solar-python.info: info/solar-python.texinfo info/fdl.texinfo $(MAKEINFO) $< - mv $*.info $@ - -.PHONY: pdf -pdf: bin/solar-python.pdf -bin/%.pdf: doc/info/%.texinfo - @! test -d obj/pdf || rm -rf obj/pdf - @mkdir -p bin obj/pdf - cd obj/pdf && texi2pdf ../../"$<" < /dev/null - mv obj/pdf/$*.pdf $@ - -.PHONY: dvi -dvi: bin/solar-python.dvi -bin/%.dvi: doc/info/%.texinfo - @! test -d obj/dvi || rm -rf obj/dvi - @mkdir -p bin obj/dvi - cd obj/dvi && $(TEXI2DVI) ../../"$<" < /dev/null - mv obj/dvi/$*.dvi $@ - -.PHONY: ps -ps: bin/solar-python.ps -bin/%.ps: doc/info/%.texinfo - @! test -d obj/ps || rm -rf obj/ps - @mkdir -p bin obj/ps - cd obj/ps && texi2pdf --ps ../../"$<" < /dev/null - mv obj/ps/$*.ps $@ - - -.PHONY: install -install: install-base install-info +install: + mkdir -p -- "$(DESTDIR)$(PREFIX)/lib/python$(PYTHON_MAJOR).$(PYTHON_MINOR)/site-packages" + cp -- solar_python.py "$(DESTDIR)$(PREFIX)/lib/python$(PYTHON_MAJOR).$(PYTHON_MINOR)/site-packages/" -.PHONY: install-all -install-all: install-base install-doc +install-info: solar-python.info + mkdir -p -- "$(DESTDIR)$(PREFIX)/share/info" + cp -- solar-python.info "$(DESTDIR)$(PREFIX)/share/info/" -.PHONY: install-base -install-base: install-lib install-copyright - - -.PHONY: install-lib -install-lib: install-source install-compiled install-optimised - -.PHONY: install-source -install-source: $(foreach M,$(SRC),src/$(M).py) - install -dm755 -- "$(DESTDIR)$(LIBDIR)/python$(PY_VERSION)" - install -m644 $^ -- "$(DESTDIR)$(LIBDIR)/python$(PY_VERSION)" - -.PHONY: install-compiled -install-compiled: $(foreach M,$(SRC),src/__pycache__/$(M).cpython-$(PY_VER).pyc) - install -dm755 -- "$(DESTDIR)$(LIBDIR)/python$(PY_VERSION)/__pycache__" - install -m644 $^ -- "$(DESTDIR)$(LIBDIR)/python$(PY_VERSION)/__pycache__" - -.PHONY: install-optimised -install-optimised: $(foreach M,$(SRC),src/__pycache__/$(M).cpython-$(PY_VER).$(PY_OPT2_EXT)) - install -dm755 -- "$(DESTDIR)$(LIBDIR)/python$(PY_VERSION)/__pycache__" - install -m644 $^ -- "$(DESTDIR)$(LIBDIR)/python$(PY_VERSION)/__pycache__" - - -.PHONY: install-copyright -install-copyright: install-copying install-license - -.PHONY: install-copying -install-copying: COPYING - install -dm755 -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - install -m644 $^ -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - -.PHONY: install-license -install-license: LICENSE - install -dm755 -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - install -m644 $^ -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - - -.PHONY: install-doc -install-doc: install-info install-pdf install-dvi install-ps - -.PHONY: install-info -install-info: bin/solar-python.info - install -dm755 -- "$(DESTDIR)$(INFODIR)" - install -m644 $< -- "$(DESTDIR)$(INFODIR)/$(PKGNAME).info" - -.PHONY: install-pdf -install-pdf: bin/solar-python.pdf - install -dm755 -- "$(DESTDIR)$(DOCDIR)" - install -m644 -- "$<" "$(DESTDIR)$(DOCDIR)/$(PKGNAME).pdf" - -.PHONY: install-dvi -install-dvi: bin/solar-python.dvi - install -dm755 -- "$(DESTDIR)$(DOCDIR)" - install -m644 -- "$<" "$(DESTDIR)$(DOCDIR)/$(PKGNAME).dvi" - -.PHONY: install-ps -install-ps: bin/solar-python.ps - install -dm755 -- "$(DESTDIR)$(DOCDIR)" - install -m644 -- "$<" "$(DESTDIR)$(DOCDIR)/$(PKGNAME).ps" - - - -.PHONY: uninstall uninstall: - -rm -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/LICENSE" - -rm -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/COPYING" - -rmdir -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" - -rm -- $(foreach M,$(SRC),"$(DESTDIR)$(LIBDIR)/python$(PY_VERSION)/__pycache__/$(M).cpython-$(PY_VER).$(PY_OPT2_EXT)") - -rm -- $(foreach M,$(SRC),"$(DESTDIR)$(LIBDIR)/python$(PY_VERSION)/__pycache__/$(M).cpython-$(PY_VER).pyc") - -rm -- $(foreach M,$(SRC),"$(DESTDIR)$(LIBDIR)/python$(PY_VERSION)/$(M).py") - -rm -- "$(DESTDIR)$(INFODIR)/$(PKGNAME).info" - -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).pdf" - -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).dvi" - -rm -- "$(DESTDIR)$(DOCDIR)/$(PKGNAME).ps" - - + -rm -f -- "$(DESTDIR)$(PREFIX)/lib/python$(PYTHON_MAJOR).$(PYTHON_MINOR)/site-packages/solar_python.py" + -rm -f -- "$(DESTDIR)$(PREFIX)/share/info/solar-python.info" .PHONY: clean clean: - -rm -r src/__pycache__ obj bin + -rm -rf -- *.pyc *.pyo __pycache__ *.info +.PHONY: all info install install-info uninstall clean |