public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:master commit in: /
Date: Thu,  5 Jun 2014 22:09:09 +0000 (UTC)	[thread overview]
Message-ID: <1396550842.316c754b535d2564ea2175a453b903ac4889c606.dywi@gentoo> (raw)

commit:     316c754b535d2564ea2175a453b903ac4889c606
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Thu Apr  3 18:47:22 2014 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Thu Apr  3 18:47:22 2014 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=316c754b

Makefile overhaul

* added a "help" target
* moved pydoc creation to Makefile (bin/build/do_pydoc.sh no longer necessary)
* moved html doc creation to Makefile (allows parallelization)
* support parallel deprules compression (_compress-deprules)
* enforce file/dir mode for all installed files
  (use recursive "install", not "cp -r")
* "dist" target: compress with bzip2, gzip and xz, depending on
  X_BZIP2, X_GZIP, X_XZ
* removed broken "install-roverlay" target
* "install-pymodules" renamed to "install" as it installs
  scripts/binaries as well
* "install-config-compressed" dropped in favor of COMPRESSED_CONFIG=0|1
  (in "install-config")
* added "install-bashcomp", "install-nonpy"
* removed uninstall-roverlay, renamed uninstall-pymodules->uninstall

These changes are incompatible with the current roverlay-9999.ebuild's
src_install().

---
 Makefile | 492 ++++++++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 347 insertions(+), 145 deletions(-)

diff --git a/Makefile b/Makefile
index 1b43925..2efca5a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,61 +1,117 @@
 # Some make targets for testing / distribution
+#  run "make help" to list them
 
 # don't create bytecode files when running py scripts (racy)
 unexport PYTHONDONTWRITEBYTECODE
 export PYTHONDONTWRITEBYTECODE=y
 
+_PRJNAME := R_Overlay
+_PN      := roverlay
+DISTNAME := $(_PN)
+
+SHELL    ?= sh
+
+S        := $(CURDIR)
+# !!! for proper outdir $O support,
+#      generate-* and install-* have to modified
+O        := $(S)
+BUILDDIR := $(O)/tmp
+
 DESTDIR  := /
 DESTTREE := $(DESTDIR)usr/
 
-DATADIR  := $(DESTTREE)share
-BINDIR   := $(DESTTREE)bin
-CONFDIR  := $(DESTDIR)etc
+DATADIR     := $(DESTTREE)share
+BINDIR      := $(DESTTREE)bin
+CONFDIR     := $(DESTDIR)etc
+BASHCOMPDIR := $(DATADIR)/bash-completion
+
+DIRMODE  := 0755
+INSMODE  := 0644
+EXEMODE  := 0755
 
-BUILDDIR := ./tmp
+_DODIR    = install -m $(DIRMODE) -d
+_DOINS    = install -m $(INSMODE)
+_DOEXE    = install -m $(EXEMODE)
+
+PYMOD_FILE_LIST := $(O)/$(_PN)_files.list
+
+_SETUP_PY_DIRS := $(addprefix $(S)/,build/ $(_PRJNAME).egg-info/)
+_PYMOD_DIRS    := $(addprefix $(S)/,roverlay/)
 
 ROVERLAY_TARGET_TYPE := gentoo
+COMPRESSED_CONFIG    := n
 RELEASE_NOT_DIRTY    := n
 RELEASE_DIRTY_SUFFIX := -dirty
 VBUMP_COMMIT         := y
 
-PYMOD_FILE_LIST := ./roverlay_files.list
-
-MANIFEST      := $(CURDIR)/MANIFEST
-LICENSES_FILE := $(CURDIR)/files/licenses
-VERSION_FILE  := $(CURDIR)/VERSION
+MANIFEST      := $(S)/MANIFEST
+LICENSES_FILE := $(S)/files/licenses
+VERSION_FILE  := $(S)/VERSION
+HTML_DOCS     := usage
+HTMLDOC_TITLE := Automatically Generated Overlay of R packages
 
 X_GIT         := git
-
-MANIFEST_GEN  := ./bin/build/create_manifest.sh
-LICENSES_GEN  := ./bin/build/make-licenses.sh
-X_SETVER      := ./bin/build/setver.sh
-RV_SETUP      := ./bin/roverlay-setup
-
-SETUP_PY      := ./setup.py
-PKG_DISTDIR   := ./release
-
-LOGDIR        := ./log
-
-ROVERLAY_MAIN := ./roverlay.py
+X_RST2HTML    := rst2html.py
+X_GZIP        := gzip
+X_BZIP2       := bzip2
+X_XZ          := xz
+X_COMPRESS    := $(X_BZIP2)
+ifeq ($(X_COMPRESS),$(X_BZIP2))
+X_COMPRESS_SUFFIX := .bz2
+else ifeq ($(X_COMPRESS),$(X_GZIP))
+X_COMPRESS_SUFFIX := .gz
+else ifeq ($(X_COMPRESS),$(X_XZ))
+X_COMPRESS_SUFFIX := .xz
+else
+X_COMPRESS_SUFFIX :=
+endif
 
 PYVER         :=
 PYTHON        := python$(PYVER)
-PYDOC_SH      := ./bin/build/do_pydoc.sh
-X_COMPRESS    := bzip2
 
-RST_HTML      := ./bin/build/roverlay_rst2html.sh
+_SCRIPTS_DIR  := $(S)/bin
+_BUILDSCRIPTS := $(_SCRIPTS_DIR)/build
+
+MANIFEST_GEN  := $(_BUILDSCRIPTS)/create_manifest.sh
+LICENSES_GEN  := $(_BUILDSCRIPTS)/make-licenses.sh
+X_SETVER      := $(_BUILDSCRIPTS)/setver.sh
+PYDOC_SH      := $(_BUILDSCRIPTS)/do_pydoc.sh
+RV_SETUP      := $(_SCRIPTS_DIR)/$(_PN)-setup
+X_RUN_TESTS   := $(_SCRIPTS_DIR)/run_tests
 
-SRC_DOCDIR    := ./doc
+SETUP_PY      := $(S)/setup.py
+PKG_DISTDIR   := $(O)/release
 
+LOGDIR        := $(S)/log
+SRC_DOCDIR    := $(S)/doc
 SELFDOC       := $(SRC_DOCDIR)/pydoc
 
+_TRUE_WORDS   := y Y 1 yes YES true TRUE
+
+# _f_recursive_install ( src_root, src_names, dest_root, file_mode )
+#
+#  Recursively installs files from <src_root>/<%name> to <dest_root>/<%name>
+#  for each name in <src_names>.
+#
+_f_recursive_install = ( \
+	cd $(1)/ && find $(2) -type f -print0 | \
+		xargs -0 -n 1 -I '{FILE}' $(SHELL) -c \
+		'set -- install -m "$(4)" -D -- "{FILE}" "$(3)/{FILE}" && \
+			echo "$${*}" && "$${@}"' \
+)
+
+# _f_install_config_files ( src_dir )
+#
+#  Installs "optionally compressable" files from src_dir to CONFDIR/_PN.
+#  (i.e. config files not installed by install-config-common)
+#
+_f_install_config_files = $(call _f_recursive_install,$(1),\
+	license.map simple-deprules.d/,$(CONFDIR)/$(_PN),$(INSMODE))
+
+
 PHONY += all
 all:
 
-PHONY += check
-check:
-	@true
-
 PHONY += version
 version:
 	@cat $(VERSION_FILE)
@@ -63,7 +119,7 @@ version:
 PHONY += setver
 setver: $(X_SETVER)
 ifeq ($(VER),)
-	$(error $$VER is not set.)
+	$(error $$VER is not set)
 else
 	$< $(VER)
 endif
@@ -71,94 +127,110 @@ endif
 PHONY += version-bump
 version-bump: $(X_SETVER)
 	{ ! $(X_GIT) status --porcelain -- $(notdir $(VERSION_FILE)) | grep .; }
-ifeq ($(VBUMP_COMMIT),$(filter $(VBUMP_COMMIT),y Y 1 yes YES true TRUE))
+ifeq ($(VBUMP_COMMIT),$(filter $(VBUMP_COMMIT),$(_TRUE_WORDS)))
 	X_GIT="$(X_GIT)" $< --reset --git-add --git-commit --git-tag +
 else
 	X_GIT="$(X_GIT)" $< --reset --git-add +
 endif
 
 PHONY += test
-test: ./bin/run_tests
-	./bin/run_tests
+test: $(X_RUN_TESTS)
+	$<
 
 PHONY += clean
 clean:
-	rm -rf ./build/ $(BUILDDIR)/
+	rm -rf -- $(_SETUP_PY_DIRS) $(BUILDDIR)/
+	rm -f  -- $(wildcard $(PKG_DISTDIR)/*.make_tmp)
 
 PHONY += clean-log
 clean-log:
-	rm -rf -- $(LOGDIR)
+	rm -rf -- $(LOGDIR)/
 
-PHONY += _pyclean
-_pyclean: | clean
-	find . \( -name "*.pyc" -or -name "*.pyo" \) -delete -print
+PHONY += pyclean
+pyclean:
+	find $(_PYMOD_DIRS) -name '*.py[co]' -delete -print
 
-PHONY += _pydoc_clean
-_pydoc_clean:
+PHONY += pydoc_clean
+pydoc_clean:
+#	rm -f -- $(wildcard $(SELFDOC)/*.html)
 	rm -f -- $(SELFDOC)/*.html
-	test ! -d $(SELFDOC) || rmdir --ignore-fail-on-non-empty -- $(SELFDOC)/
 
 PHONY += distclean
-distclean: clean _pyclean _pydoc_clean
+distclean: clean pyclean pydoc_clean
+	test ! -d $(SELFDOC) || rmdir --ignore-fail-on-non-empty -- $(SELFDOC)/
+
+$(PKG_DISTDIR) $(BUILDDIR) $(BUILDDIR)/config:
+	mkdir -p -- "$@"
 
-$(BUILDDIR):
-	@install -d $(BUILDDIR)
+$(SELFDOC)/roverlay: $(S)/roverlay
+	mkdir -p -- $(@D)
+	ln -nfsT -- $< $@
 
 # generates selfdocs (using pydoc) in $(SELFDOC)/
-$(SELFDOC): | _pydoc_clean
-	-mkdir $(SELFDOC)
-	ln -snfT -- ../../roverlay $(SELFDOC)/roverlay
-	$(PYDOC_SH) $(SELFDOC)
+$(SELFDOC): FORCE pydoc_clean | $(SELFDOC)/roverlay
+	test -e $@/roverlay
+	cd $@ && find roverlay/ -type f -name '*.py' | \
+		sed -e 's,[.]py$$,,' -e 's,\/,.,g' -e 's,[.]__init__$$,,' | \
+		xargs pydoc -w
+	ln -nfsT -- roverlay.html $@/index.html
+	rm -f $@/roverlay
 
 # alias to $(SELFDOC)
 PHONY += pydoc
 pydoc: $(SELFDOC)
 
+$(SRC_DOCDIR)/html/%.html: $(SRC_DOCDIR)/rst/%.rst
+	@mkdir -p $(@D)
+	$(X_RST2HTML) --title '$(HTMLDOC_TITLE)' --date '$<' '$@'
+
 PHONY += htmldoc
-htmldoc: $(SRC_DOCDIR)/rst/usage.rst
-	@install -d $(SRC_DOCDIR)/html
-	$(RST_HTML) $(SRC_DOCDIR)/rst/usage.rst $(SRC_DOCDIR)/html/usage.html
+htmldoc: $(addsuffix .html,$(addprefix $(SRC_DOCDIR)/html/,$(HTML_DOCS)))
 
 PHONY += generate-doc
 generate-doc: htmldoc
 
 $(MANIFEST): $(MANIFEST_GEN) FORCE
+	@mkdir -p $(@D)
 	$< > $@
 
 PHONY += generate-manifest
 generate-manifest: $(MANIFEST)
 
-$(LICENSES_FILE): $(LICENSES_GEN) FORCE | $(CURDIR)/files
+$(LICENSES_FILE): $(LICENSES_GEN) FORCE
+	@mkdir -p $(@D)
 	$< $@
 
 PHONY += generate-licenses
-generate-licenses: $(CURDIR)/files/licenses
+generate-licenses: $(LICENSES_FILE)
 
 
-
-$(CURDIR)/config/R-overlay.conf.install: $(RV_SETUP) FORCE | $(CURDIR)/config
+$(S)/config/R-overlay.conf.install: $(RV_SETUP) FORCE
+	@mkdir -p $(@D)
 	ROVERLAY_INSTALLED=1 $< --target-type gentoo \
 		-O $@ \
-		-D $(DATADIR)/roverlay \
-		--conf-root $(CONFDIR)/roverlay --my-conf-root $(CONFDIR)/roverlay \
-		-A $(CONFDIR)/roverlay/files \
+		-D $(DATADIR)/$(_PN) \
+		--conf-root $(CONFDIR)/$(_PN) --my-conf-root $(CONFDIR)/$(_PN) \
+		-A $(CONFDIR)/$(_PN)/files \
 		mkconfig
 
-$(CURDIR)/config/R-overlay.conf.install.others: $(RV_SETUP) FORCE | $(CURDIR)/config
+$(S)/config/R-overlay.conf.install.others: $(RV_SETUP) FORCE
+	@mkdir -p $(@D)
 	ROVERLAY_INSTALLED=1 $< --target-type foreign \
 		-O $@ \
-		-D $(DATADIR)/roverlay \
-		--conf-root $(CONFDIR)/roverlay --my-conf-root $(CONFDIR)/roverlay \
-		-A $(CONFDIR)/roverlay/files \
+		-D $(DATADIR)/$(_PN) \
+		--conf-root $(CONFDIR)/$(_PN) --my-conf-root $(CONFDIR)/$(_PN) \
+		-A $(CONFDIR)/$(_PN)/files \
 		mkconfig
 
-$(CURDIR)/R-overlay.conf: $(RV_SETUP) FORCE
+$(S)/R-overlay.conf: $(RV_SETUP) FORCE
+	@mkdir -p $(@D)
 	ROVERLAY_INSTALLED=0 $< --target-type gentoo \
 		-O $@ --prjroot-relpath \
 		-D files --conf-root config --my-conf-root config -A files -W workdir \
 		mkconfig
 
-$(CURDIR)/R-overlay.conf.others: $(RV_SETUP) FORCE
+$(S)/R-overlay.conf.others: $(RV_SETUP) FORCE
+	@mkdir -p $(@D)
 	ROVERLAY_INSTALLED=0 $< --target-type foreign \
 		-O $@ --prjroot-relpath \
 		-D files --conf-root config --my-conf-root config -A files -W workdir \
@@ -166,17 +238,17 @@ $(CURDIR)/R-overlay.conf.others: $(RV_SETUP) FORCE
 
 PHONY += generate-config
 generate-config: \
-	$(CURDIR)/config/R-overlay.conf.install \
-	$(CURDIR)/config/R-overlay.conf.install.others \
-	$(CURDIR)/R-overlay.conf \
-	$(CURDIR)/R-overlay.conf.others
+	$(S)/config/R-overlay.conf.install \
+	$(S)/config/R-overlay.conf.install.others \
+	$(S)/R-overlay.conf \
+	$(S)/R-overlay.conf.others
 
 
 PHONY += generate-files
-generate-files: generate-config generate-doc generate-manifest generate-licenses
+generate-files: $(addprefix generate-,config doc manifest licenses)
 
 PHONY += generate-files-commit
-generate-files-commit:
+generate-files-commit: gemerate-files
 	{ ! $(X_GIT) status --porcelain -- . | grep ^[MADRCU]; }
 	$(X_GIT) add -vu -- \
 		R-overlay.conf \
@@ -188,117 +260,247 @@ generate-files-commit:
 	$(X_GIT) commit -m "update generated files"
 
 # creates a src tarball (.tar.bz2)
-PHONY += release
-release: generate-files
+PHONY += dist
+dist: distclean generate-files | $(PKG_DISTDIR)
+ifeq ($(X_BZIP2)$(X_GZIP)$(X_XZ),)
+	$(error at least one of X_BZIP2, X_GZIP, X_XZ must be set)
+endif
 	$(eval MY_$@_BASEVER  := $(shell cat $(VERSION_FILE)))
 	test -n '$(MY_$@_BASEVER)'
-	$(eval MY_$@_HEADREF := $(shell git rev-parse --verify HEAD))
+
+	$(eval MY_$@_HEADREF := $(shell $(X_GIT) rev-parse --verify HEAD))
 	test -n '$(MY_$@_HEADREF)'
-	$(eval MY_$@_VREF    := $(shell git rev-parse --verify $(MY_$@_BASEVER) 2>/dev/null))
-ifeq ($(RELEASE_NOT_DIRTY),$(filter $(RELEASE_NOT_DIRTY),y Y 1 yes YES true TRUE))
+
+	$(eval MY_$@_VREF    := $(shell $(X_GIT) rev-parse --verify $(MY_$@_BASEVER) 2>/dev/null))
+
+ifeq ($(RELEASE_NOT_DIRTY),$(filter $(RELEASE_NOT_DIRTY),$(_TRUE_WORDS)))
 	$(eval MY_$@_VER     := $(MY_$@_BASEVER))
 else
 	$(eval MY_$@_VER     := $(MY_$@_BASEVER)$(shell \
 		test "$(MY_$@_HEADREF)" = "$(MY_$@_VREF)" || echo '$(RELEASE_DIRTY_SUFFIX)'))
 endif
-	$(eval MY_$@_FILE    := $(PKG_DISTDIR)/roverlay_$(MY_$@_VER).tar)
 
-	install -d -m 0755 -- $(PKG_DISTDIR)
-	git archive --worktree-attributes --format=tar HEAD \
-		--prefix=roverlay_$(MY_$@_VER)/ > $(MY_$@_FILE).make_tmp
+	$(eval MY_$@_FILE    := $(PKG_DISTDIR)/$(DISTNAME)_$(MY_$@_VER).tar)
+
 
-	bzip2 -c $(MY_$@_FILE).make_tmp > $(MY_$@_FILE).bz2
+	$(X_GIT) archive --worktree-attributes --format=tar HEAD \
+		--prefix=$(DISTNAME)_$(MY_$@_VER)/ > $(MY_$@_FILE).make_tmp
+
+ifneq ($(X_BZIP2),)
+	$(X_BZIP2) -c $(MY_$@_FILE).make_tmp > $(MY_$@_FILE).bz2
+endif
+ifneq ($(X_GZIP),)
+	$(X_GZIP)  -c $(MY_$@_FILE).make_tmp > $(MY_$@_FILE).gz
+endif
+ifneq ($(X_XZ),)
+	$(X_XZ)    -c $(MY_$@_FILE).make_tmp > $(MY_$@_FILE).xz
+endif
 	rm -- $(MY_$@_FILE).make_tmp
 
 
-PHONY += dist
-dist: distclean release
+# rule for compressing a deprule file
+$(BUILDDIR)/config/simple-deprules.d/%$(X_COMPRESS_SUFFIX): \
+	$(S)/config/simple-deprules.d/%
+
+	@mkdir -p $(@D)
+	$(X_COMPRESS) -c $< > $@
+
+# rule for compressing all deprule files
+PHONY += _compress-deprules
+_compress-deprules: $(shell \
+	find $(S)/config/simple-deprules.d/ -type f | sed \
+		-e 's,^$(S)/,$(BUILDDIR)/,' -e 's,$$,$(X_COMPRESS_SUFFIX),')
 
 PHONY += compress-config
-compress-config: $(BUILDDIR)
-	@install -d $(BUILDDIR)/config
-	cp -vLr -p --no-preserve=ownership config/simple-deprules.d $(BUILDDIR)/config/
-	find $(BUILDDIR)/config/simple-deprules.d/ -type f -print0 | xargs -0 -n 5 --verbose $(X_COMPRESS)
-	$(X_COMPRESS) -c config/license.map >  $(BUILDDIR)/config/license.map
-
-PHONY += install-roverlay
-install-roverlay: ./roverlay.py
-	install -T -D -- ./roverlay.py $(BINDIR)/roverlay
-
-PHONY += install-pymodules
-install-pymodules: ./setup.py
-	$(PYTHON) ./setup.py install --record $(PYMOD_FILE_LIST)
-
-PHONY += install-config-common
-install-config-common:
-	install -m 0755 -d $(CONFDIR)/roverlay
-	install -m 0644 -t $(CONFDIR)/roverlay \
+compress-config: _compress-deprules | $(BUILDDIR)/config
+	$(X_COMPRESS) -c config/license.map > $(BUILDDIR)/config/license.map
+
+
+PHONY += install-config
+install-config:
+	$(_DODIR) $(CONFDIR)/$(_PN)
+	$(_DOINS) -t $(CONFDIR)/$(_PN) \
 		config/description_fields.conf config/repo.list \
 		config/package_rules config/hookrc
 ifeq ($(ROVERLAY_TARGET_TYPE),gentoo)
-	install -m 0644 -T \
-		config/R-overlay.conf.install $(CONFDIR)/roverlay/R-overlay.conf
+	$(_DOINS) -T \
+		config/R-overlay.conf.install $(CONFDIR)/$(_PN)/R-overlay.conf
 else
-	install -m 0644 -T \
-		config/R-overlay.conf.install.others $(CONFDIR)/roverlay/R-overlay.conf
+	$(_DOINS) -T \
+		config/R-overlay.conf.install.others $(CONFDIR)/$(_PN)/R-overlay.conf
+endif
+ifeq ($(COMPRESSED_CONFIG),$(filter $(COMPRESSED_CONFIG),$(_TRUE_WORDS)))
+	$(call _f_install_config_files,$(BUILDDIR)/config)
+else
+	$(call _f_install_config_files,$(S)/config)
 endif
 
-PHONY += install-config-compressed
-install-config-compressed: install-config-common
-	cp -vLr -p --no-preserve=ownership \
-		$(BUILDDIR)/config/simple-deprules.d $(BUILDDIR)/config/license.map \
-		$(CONFDIR)/roverlay/
-
-PHONY += install-config
-install-config: install-config-common
-	cp -vLr -p --no-preserve=ownership \
-		config/simple-deprules.d config/license.map \
-		$(CONFDIR)/roverlay/
-
-
-# license.map deprules
 PHONY += install-data
 install-data:
-	install -m 0755 -d \
-		$(DATADIR)/roverlay \
-		$(DATADIR)/roverlay/shlib $(DATADIR)/roverlay/hooks \
-		$(DATADIR)/roverlay/eclass $(DATADIR)/roverlay/mako_templates
+	$(_DODIR) -- \
+		$(addprefix $(DATADIR)/$(_PN)/,shlib hooks eclass mako_templates)
 
 ifeq ($(ROVERLAY_TARGET_TYPE),gentoo)
-	install -m 0644 -- files/setup.defaults $(DATADIR)/setup.defaults
+	$(_DOINS) -- files/setup.defaults $(DATADIR)/setup.defaults
 else
-	install -m 0644 -- files/setup.defaults.others $(DATADIR)/setup.defaults
-	install -m 0644 -- $(LICENSES_FILE) $(DATADIR)/roverlay/licenses
+	$(_DOINS) -- files/setup.defaults.others $(DATADIR)/setup.defaults
+	$(_DOINS) -- $(LICENSES_FILE) $(DATADIR)/$(_PN)/licenses
 endif
-	install -m 0644 -t $(DATADIR)/roverlay/hooks files/hooks/*.sh
-	install -m 0644 -t $(DATADIR)/roverlay/shlib files/shlib/*.sh
-	chmod 0775 $(DATADIR)/roverlay/hooks/mux.sh
-
-	install -m 0644 -t $(DATADIR)/roverlay/eclass files/eclass/*.eclass
-
-	install -m 0644 -t $(DATADIR)/roverlay/mako_templates \
-		files/mako_templates/*.*
+	$(_DOINS) -t $(DATADIR)/$(_PN)/hooks  -- $(wildcard files/hooks/*.sh)
+	chmod $(EXEMODE) -- $(DATADIR)/$(_PN)/hooks/mux.sh
+	$(_DOINS) -t $(DATADIR)/$(_PN)/shlib  -- $(wildcard files/shlib/*.sh)
+	$(_DOINS) -t $(DATADIR)/$(_PN)/eclass -- $(wildcard files/eclass/*.eclass)
+	$(_DOINS) -t $(DATADIR)/$(_PN)/mako_templates -- \
+		$(wildcard files/mako_templates/*.*)
+
+PHONY += install-bashcomp
+install-bashcomp:
+	$(_DODIR) $(BASHCOMPDIR)
+	$(foreach f,$(wildcard $(S)/files/misc/*.bashcomp),\
+		$(_DOINS) -- $(f) $(BASHCOMPDIR)/$(notdir $(basename $(f))))
 
 PHONY += install
-install: install-pymodules install-roverlay
+install: $(SETUP_PY)
+	$(PYTHON) $< install --root $(DESTDIR) --record $(PYMOD_FILE_LIST)
 
-PHONY += install-all
-install-all: install
+PHONY += install-nonpy
+install-nonpy: $(addprefix install-,data config bashcomp)
 
-PHONY += uninstall-roverlay
-uninstall-roverlay:
-	rm -vf -- $(BINDIR)/roverlay
+PHONY += install-all
+install-all: install install-nonpy
 
-PHONY += uninstall-pymodules
-uninstall-pymodules: $(PYMOD_FILE_LIST)
+PHONY += uninstall
+uninstall: $(PYMOD_FILE_LIST)
 	xargs rm -vrf < $(PYMOD_FILE_LIST)
 
-PHONY += uninstall
-uinstall:
+PHONY += uninstall-all
+uninstall-all:
 	@false
 
-PHONY += uninstall-all
-uninstall-all: uninstall
+PHONY += help
+help:
+	$(eval MY_$@_GENITIVE := $(_PN)'\''s)
+
+	@echo  'Basic Targets:'
+	@echo  '  all                         - do nothing'
+	@echo  '  version                     - print $(MY_$@_GENITIVE) version'
+	@echo  '  compress-config             - compress config files with X_COMPRESS'
+	@echo  '                                 and write them to BUILDDIR/config'
+	@echo  '                                 (X_COMPRESS: $(X_COMPRESS))'
+	@echo  '                                 (BUILDDIR  : $(BUILDDIR:$(CURDIR)/%=%))'
+#	@echo  '  _compress-deprules          - compress dependency rule files with X_COMPRESS'
+	@echo  '  test                        - run tests'
+	@echo  ''
+
+	@echo  '(Un-)Install Targets:'
+	@echo  '  install-all                 - run all targets marked with [I]'
+	@echo  '  uninstall-all               - ***not available***'
+	@echo  '  install-nonpy               - run all targets marked with [I] except'
+	@echo  '                                 "install"'
+	@echo  'I install                     - install scripts and python modules to DESTDIR'
+	@echo  '                                 (DESTDIR: $(DESTDIR))'
+	@echo  '  uninstall                   - uninstall scripts / python modules'
+	@echo  'I install-config              - install config files to CONFDIR/$(_PN)'
+	@echo  '                                 use compressed files from BUILDDIR where'
+	@echo  '                                 applicable if COMPRESSED_CONFIG is "y"'
+	@echo  '                                 "compress-config" must be run manually!'
+	@echo  '                                 (CONFDIR: $(CONFDIR))'
+	@echo  '                                 (COMPRESSED_CONFIG: $(COMPRESSED_CONFIG))'
+	@echo  'I install-data                - install data files to DATADIR/$(_PN)'
+	@echo  '                                 (DATADIR: $(DATADIR))'
+	@echo  'I install-bashcomp            - install bash completion files to BASHCOMPDIR'
+	@echo  '                                 (BASHCOMPDIR: $(BASHCOMPDIR))'
+	@echo  ''
+
+	@echo  'Cleanup Targets:'
+	@echo  '  clean                       - remove temporary dirs'
+	@echo  '  distclean                   - remove temporary dirs, .py[co] and pydoc files'
+	@echo  '  clean-log                   - remove log file directory LOGDIR'
+	@echo  '                                 (LOGDIR: $(LOGDIR:$(CURDIR)/%=%))'
+	@echo  '  pyclean                     - remove .py[co] files'
+	@echo  '  pydoc_clean                 - remove pydoc files'
+	@echo  ''
+
+	@echo  'File Generation Targets:'
+	@echo  '  generate-files              - run all targets marked with [G]'
+	@echo  '  pydoc                       - create pydoc files (in-code documentation)'
+	@echo  '  htmldoc                     - create html documentation (usage guide)'
+	@echo  'G generate-doc                - alias to "htmldoc"'
+	@echo  'G generate-manifest           - create a MANIFEST file for setup.py'
+	@echo  'G generate-licenses           - create a licenses file and write it to'
+	@echo  '                                 LICENSES_FILE, for systems without PORTDIR'
+	@echo  '                                 (default: $(LICENSES_FILE:$(CURDIR)/%=%))'
+	@echo  'G generate-config             - create R-overlay.conf config files'
+	@echo  ''
+
+	@echo  'Release/Devel Helper Targets:'
+	@echo  '  generate-files-commit       - run "generate-files" and commit changes'
+	@echo  '  version-bump                - increase $(MY_$@_GENITIVE) version (patchlevel)'
+	@echo  '                                 and git commit/tag depending on VBUMP_COMMIT'
+	@echo  '                                 (default: $(VBUMP_COMMIT))'
+	@echo  '  setver                      - set $(MY_$@_GENITIVE) version to VER'
+	@echo  '                                 (default: <not set>)'
+	@echo  '  dist                        - create source tarball(s) in PKG_DISTDIR:'
+	@echo  '                                 DISTNAME_<version>.tar.<compression suffix>'
+	@echo  '                                 (implies "distclean" and "generate-files")'
+	@echo  '                                 (PKG_DISTDIR: $(PKG_DISTDIR:$(CURDIR)/%=%))'
+	@echo  '                                 (DISTNAME:    $(DISTNAME))'
+	@echo  ''
+	@echo  ''
+	@echo  'Variables:'
+	@echo  '* ROVERLAY_TARGET_TYPE        - controls which files get installed and should'
+	@echo  '                                 be either "gentoo" or "foreign" [$(ROVERLAY_TARGET_TYPE)]'
+	@echo  '                                 Pick "foreign" for systems'
+	@echo  '                                 without portage and/or PORTDIR.'
+	@echo  '* COMPRESSED_CONFIG           - whether to install compressed config files (y)'
+	@echo  '                                 or not (n) [$(COMPRESSED_CONFIG)]'
+	@echo  '* DESTDIR                     - installation root directory'
+	@echo  '                                 [$(DESTDIR)]'
+	@echo  '* DESTTREE                    - installation directory with prefix'
+	@echo  '                                 (DESTDIR/usr/) [$(DESTTREE)]'
+	@echo  '* DATADIR                     - directory for data files (DESTTREE/share)'
+	@echo  '                                 [$(DATADIR)]'
+	@echo  '* BINDIR                      - directory for executables (DESTTREE/bin)'
+	@echo  '                                 [$(BINDIR)]'
+	@echo  '* CONFDIR                     - system config directory (DESTDIR/etc)'
+	@echo  '                                 [$(CONFDIR)]'
+	@echo  '* BASHCOMPDIR                 - bashcomp dir (DATADIR/bash-completion)'
+	@echo  '                                 [$(BASHCOMPDIR)]'
+	@echo  '* DIRMODE                     - mode for installing directories [$(DIRMODE)]'
+	@echo  '* INSMODE                     - mode for installing files       [$(INSMODE)]'
+	@echo  '* EXEMODE                     - mode for installing scripts     [$(EXEMODE)]'
+	@echo  '* PYMOD_FILE_LIST             - file for recording files installed by setup.py'
+	@echo  '                                 [$(PYMOD_FILE_LIST:$(CURDIR)/%=%)]'
+	@echo  '* BUILDDIR                    - directory for temporary build files, e.g.'
+	@echo  '                                 compressed config'
+	@echo  '                                 [$(BUILDDIR:$(CURDIR)/%=%)]'
+	@echo  ''
+	@echo -n  '* PYVER                       - version of the python interpreter '
+ifeq ($(PYVER),)
+	@echo  '[<unset>]'
+else
+	@echo  '[$(PYVER)]'
+endif
+	@echo  '* PYTHON                      - name of/path to python (pythonPYVER) [$(PYTHON)]'
+	@echo  '* X_COMPRESS                  - default compression program (X_BZIP2) [$(X_COMPRESS)]'
+	@echo  '                                 (used in compress-* targets)'
+	@echo  '* X_COMPRESS_SUFFIX           - file extension for compressed deprule files'
+	@echo  '                                 (default: depends on X_COMPRESS) [$(X_COMPRESS_SUFFIX)]'
+	@echo  '* X_BZIP2                     - name of/path to bzip2 [$(X_BZIP2)]'
+	@echo  '* X_GZIP                      - name of/path to gzip  [$(X_GZIP)]'
+	@echo  '* X_XZ                        - name of/path to xz    [$(X_XZ)]'
+	@echo  '* X_GIT                       - name of/path to git   [$(X_GIT)]'
+	@echo  '* X_RST2HTML                  - name of/path to rst2html [$(X_RST2HTML)]'
+	@echo  ''
+	@echo  '* VBUMP_COMMIT                - whether to commit/tag when running'
+	@echo  '                                "version-bump" (y) or not (n) [$(VBUMP_COMMIT)]'
+	@echo  '* RELEASE_NOT_DIRTY           - whether to check if the dist tarball actually'
+	@echo  '                                matches its version (n) or not (y) [$(RELEASE_NOT_DIRTY)]'
+	@echo  '* RELEASE_DIRTY_SUFFIX        - suffix for "dirty" dist tarballs [$(RELEASE_DIRTY_SUFFIX)]'
+	@echo  '* DISTNAME                    - base name for source tarballs [$(DISTNAME)]'
+	@echo  '* PKG_DISTDIR                 - directory for storing source tarballs'
+	@echo  '                                 [$(PKG_DISTDIR:$(CURDIR)/%=%)]'
+
 
 PHONY += FORCE
 FORCE:


             reply	other threads:[~2014-06-05 22:09 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-05 22:09 André Erdmann [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-11-24 10:41 [gentoo-commits] proj/R_overlay:master commit in: / Benda XU
2015-11-05  5:15 Benda XU
2015-01-26 17:41 André Erdmann
2014-07-16 15:14 André Erdmann
2014-06-05 22:09 André Erdmann
2014-06-05 22:09 André Erdmann
2014-06-05 22:09 André Erdmann
2014-06-05 22:09 André Erdmann
2014-06-05 22:09 André Erdmann
2014-06-05 22:09 André Erdmann
2014-06-05 22:09 André Erdmann
2014-06-05 22:09 André Erdmann
2014-04-01 16:38 André Erdmann
2014-04-01 16:38 André Erdmann
2014-02-22 14:56 André Erdmann
2014-02-22 14:56 André Erdmann
2014-02-21 18:15 André Erdmann
2014-02-16  3:44 Benda XU
2014-01-25 18:14 André Erdmann
2013-12-11 18:40 André Erdmann
2013-09-23 15:30 André Erdmann
2013-09-23 15:30 André Erdmann
2013-09-23 15:30 André Erdmann
2013-09-23 15:30 André Erdmann
2013-09-18 14:00 André Erdmann
2013-09-18 14:00 André Erdmann
2013-09-16  8:56 André Erdmann
2013-09-13 15:10 André Erdmann
2013-09-12 16:36 André Erdmann
2013-09-12  8:27 André Erdmann
2013-09-12  8:27 André Erdmann
2013-09-11 14:59 André Erdmann
2013-09-11 14:59 André Erdmann
2013-09-11 10:27 André Erdmann
2013-09-11 10:19 André Erdmann
2013-09-11 10:19 André Erdmann
2013-09-04 15:36 André Erdmann
2013-08-29 15:22 André Erdmann
2013-08-16 10:58 André Erdmann
2013-08-16 10:57 André Erdmann
2013-08-16 10:53 André Erdmann
2013-08-16 10:43 André Erdmann
2013-08-16 10:43 André Erdmann
2013-08-14 14:56 André Erdmann
2013-08-14 14:56 André Erdmann
2013-08-12  8:18 André Erdmann
2013-08-09 10:18 André Erdmann
2013-08-05 11:44 André Erdmann
2013-08-01 12:44 André Erdmann
2013-08-01 12:44 André Erdmann
2013-07-25 13:25 André Erdmann
2013-07-23 18:34 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-23 18:34 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-23 14:57 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-23 14:57 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-12 17:11 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-12 17:11 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-12 14:03 André Erdmann
2013-07-11 16:44 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-11 16:29 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-11 10:36 André Erdmann
2013-07-10 16:16 André Erdmann
2013-07-10 16:16 André Erdmann
2013-07-10 15:10 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-10 16:16 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-03 10:05 André Erdmann
2013-06-22 15:24 André Erdmann
2013-06-22 15:24 André Erdmann
2013-02-09 21:23 André Erdmann
2013-02-09 20:45 André Erdmann
2013-02-03 19:32 André Erdmann
2013-01-28 23:56 André Erdmann
2013-01-27 16:51 Denis Dupeyron
2013-01-25 23:27 Denis Dupeyron
2013-01-25 17:44 Denis Dupeyron
2013-01-09 19:15 André Erdmann
2012-08-20 10:39 André Erdmann
2012-08-20 10:39 André Erdmann
2012-08-17 17:26 André Erdmann
2012-08-10 15:16 André Erdmann
2012-08-10 15:16 André Erdmann
2012-08-10 15:16 André Erdmann
2012-08-10 15:16 André Erdmann
2012-08-08 23:46 André Erdmann
2012-08-08 23:46 André Erdmann
2012-08-07  8:50 André Erdmann
2012-08-06 19:01 André Erdmann
2012-08-03 15:04 André Erdmann
2012-08-03 15:04 André Erdmann
2012-08-03 15:04 André Erdmann
2012-08-03 15:04 André Erdmann
2012-08-03 13:59 André Erdmann
2012-08-03 13:38 André Erdmann
2012-08-03 13:38 André Erdmann
2012-08-01 21:10 André Erdmann
2012-08-01  7:38 André Erdmann
2012-07-30 15:53 André Erdmann
2012-07-30 15:53 André Erdmann
2012-07-16 16:15 André Erdmann
2012-07-11 18:43 André Erdmann
2012-07-11 18:43 André Erdmann
2012-07-10 18:03 André Erdmann
2012-07-09 17:19 André Erdmann
2012-07-09 17:19 André Erdmann
2012-07-09 17:19 André Erdmann
2012-07-09 17:19 André Erdmann
2012-07-06 22:19 André Erdmann
2012-07-06 22:19 André Erdmann
2012-07-06  8:15 André Erdmann
2012-07-05 16:01 André Erdmann
2012-07-05 16:00 André Erdmann
2012-07-04 18:21 André Erdmann
2012-07-04 18:21 André Erdmann
2012-07-04 18:21 André Erdmann
2012-07-03 17:48 André Erdmann
2012-07-03 17:48 André Erdmann
2012-06-29 22:48 André Erdmann
2012-06-29 22:48 André Erdmann
2012-06-27 14:46 André Erdmann
2012-06-27 14:46 André Erdmann
2012-06-26 15:42 André Erdmann
2012-06-26 15:42 André Erdmann
2012-06-25 18:19 André Erdmann
2012-06-22 18:13 André Erdmann
2012-06-22 18:13 André Erdmann
2012-06-22 18:13 André Erdmann
2012-06-21 16:55 André Erdmann
2012-06-20 19:03 André Erdmann
2012-06-20 19:03 André Erdmann
2012-06-15 20:34 André Erdmann
2012-06-15 20:34 André Erdmann
2012-06-15 20:34 André Erdmann
2012-06-15 20:34 André Erdmann
2012-06-13 16:34 André Erdmann
2012-06-13 16:34 André Erdmann
2012-06-12 17:17 André Erdmann
2012-06-11 18:31 André Erdmann
2012-06-11 18:31 André Erdmann
2012-06-11 18:31 André Erdmann
2012-06-08 17:48 André Erdmann
2012-06-06 19:52 André Erdmann
2012-06-06 19:52 André Erdmann
2012-06-06 19:52 André Erdmann
2012-06-01 15:46 André Erdmann
2012-06-01 15:46 André Erdmann
2012-05-31 18:24 André Erdmann
2012-05-31 18:24 André Erdmann
2012-05-30 19:36 André Erdmann
2012-05-30 16:09 André Erdmann
2012-05-30 10:58 André Erdmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1396550842.316c754b535d2564ea2175a453b903ac4889c606.dywi@gentoo \
    --to=dywi@mailerd.de \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox