Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: /
Date: Thu, 05 Jun 2014 22:09:18
Message-Id: 1396550842.316c754b535d2564ea2175a453b903ac4889c606.dywi@gentoo
1 commit: 316c754b535d2564ea2175a453b903ac4889c606
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Thu Apr 3 18:47:22 2014 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Thu Apr 3 18:47:22 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=316c754b
7
8 Makefile overhaul
9
10 * added a "help" target
11 * moved pydoc creation to Makefile (bin/build/do_pydoc.sh no longer necessary)
12 * moved html doc creation to Makefile (allows parallelization)
13 * support parallel deprules compression (_compress-deprules)
14 * enforce file/dir mode for all installed files
15 (use recursive "install", not "cp -r")
16 * "dist" target: compress with bzip2, gzip and xz, depending on
17 X_BZIP2, X_GZIP, X_XZ
18 * removed broken "install-roverlay" target
19 * "install-pymodules" renamed to "install" as it installs
20 scripts/binaries as well
21 * "install-config-compressed" dropped in favor of COMPRESSED_CONFIG=0|1
22 (in "install-config")
23 * added "install-bashcomp", "install-nonpy"
24 * removed uninstall-roverlay, renamed uninstall-pymodules->uninstall
25
26 These changes are incompatible with the current roverlay-9999.ebuild's
27 src_install().
28
29 ---
30 Makefile | 492 ++++++++++++++++++++++++++++++++++++++++++++-------------------
31 1 file changed, 347 insertions(+), 145 deletions(-)
32
33 diff --git a/Makefile b/Makefile
34 index 1b43925..2efca5a 100644
35 --- a/Makefile
36 +++ b/Makefile
37 @@ -1,61 +1,117 @@
38 # Some make targets for testing / distribution
39 +# run "make help" to list them
40
41 # don't create bytecode files when running py scripts (racy)
42 unexport PYTHONDONTWRITEBYTECODE
43 export PYTHONDONTWRITEBYTECODE=y
44
45 +_PRJNAME := R_Overlay
46 +_PN := roverlay
47 +DISTNAME := $(_PN)
48 +
49 +SHELL ?= sh
50 +
51 +S := $(CURDIR)
52 +# !!! for proper outdir $O support,
53 +# generate-* and install-* have to modified
54 +O := $(S)
55 +BUILDDIR := $(O)/tmp
56 +
57 DESTDIR := /
58 DESTTREE := $(DESTDIR)usr/
59
60 -DATADIR := $(DESTTREE)share
61 -BINDIR := $(DESTTREE)bin
62 -CONFDIR := $(DESTDIR)etc
63 +DATADIR := $(DESTTREE)share
64 +BINDIR := $(DESTTREE)bin
65 +CONFDIR := $(DESTDIR)etc
66 +BASHCOMPDIR := $(DATADIR)/bash-completion
67 +
68 +DIRMODE := 0755
69 +INSMODE := 0644
70 +EXEMODE := 0755
71
72 -BUILDDIR := ./tmp
73 +_DODIR = install -m $(DIRMODE) -d
74 +_DOINS = install -m $(INSMODE)
75 +_DOEXE = install -m $(EXEMODE)
76 +
77 +PYMOD_FILE_LIST := $(O)/$(_PN)_files.list
78 +
79 +_SETUP_PY_DIRS := $(addprefix $(S)/,build/ $(_PRJNAME).egg-info/)
80 +_PYMOD_DIRS := $(addprefix $(S)/,roverlay/)
81
82 ROVERLAY_TARGET_TYPE := gentoo
83 +COMPRESSED_CONFIG := n
84 RELEASE_NOT_DIRTY := n
85 RELEASE_DIRTY_SUFFIX := -dirty
86 VBUMP_COMMIT := y
87
88 -PYMOD_FILE_LIST := ./roverlay_files.list
89 -
90 -MANIFEST := $(CURDIR)/MANIFEST
91 -LICENSES_FILE := $(CURDIR)/files/licenses
92 -VERSION_FILE := $(CURDIR)/VERSION
93 +MANIFEST := $(S)/MANIFEST
94 +LICENSES_FILE := $(S)/files/licenses
95 +VERSION_FILE := $(S)/VERSION
96 +HTML_DOCS := usage
97 +HTMLDOC_TITLE := Automatically Generated Overlay of R packages
98
99 X_GIT := git
100 -
101 -MANIFEST_GEN := ./bin/build/create_manifest.sh
102 -LICENSES_GEN := ./bin/build/make-licenses.sh
103 -X_SETVER := ./bin/build/setver.sh
104 -RV_SETUP := ./bin/roverlay-setup
105 -
106 -SETUP_PY := ./setup.py
107 -PKG_DISTDIR := ./release
108 -
109 -LOGDIR := ./log
110 -
111 -ROVERLAY_MAIN := ./roverlay.py
112 +X_RST2HTML := rst2html.py
113 +X_GZIP := gzip
114 +X_BZIP2 := bzip2
115 +X_XZ := xz
116 +X_COMPRESS := $(X_BZIP2)
117 +ifeq ($(X_COMPRESS),$(X_BZIP2))
118 +X_COMPRESS_SUFFIX := .bz2
119 +else ifeq ($(X_COMPRESS),$(X_GZIP))
120 +X_COMPRESS_SUFFIX := .gz
121 +else ifeq ($(X_COMPRESS),$(X_XZ))
122 +X_COMPRESS_SUFFIX := .xz
123 +else
124 +X_COMPRESS_SUFFIX :=
125 +endif
126
127 PYVER :=
128 PYTHON := python$(PYVER)
129 -PYDOC_SH := ./bin/build/do_pydoc.sh
130 -X_COMPRESS := bzip2
131
132 -RST_HTML := ./bin/build/roverlay_rst2html.sh
133 +_SCRIPTS_DIR := $(S)/bin
134 +_BUILDSCRIPTS := $(_SCRIPTS_DIR)/build
135 +
136 +MANIFEST_GEN := $(_BUILDSCRIPTS)/create_manifest.sh
137 +LICENSES_GEN := $(_BUILDSCRIPTS)/make-licenses.sh
138 +X_SETVER := $(_BUILDSCRIPTS)/setver.sh
139 +PYDOC_SH := $(_BUILDSCRIPTS)/do_pydoc.sh
140 +RV_SETUP := $(_SCRIPTS_DIR)/$(_PN)-setup
141 +X_RUN_TESTS := $(_SCRIPTS_DIR)/run_tests
142
143 -SRC_DOCDIR := ./doc
144 +SETUP_PY := $(S)/setup.py
145 +PKG_DISTDIR := $(O)/release
146
147 +LOGDIR := $(S)/log
148 +SRC_DOCDIR := $(S)/doc
149 SELFDOC := $(SRC_DOCDIR)/pydoc
150
151 +_TRUE_WORDS := y Y 1 yes YES true TRUE
152 +
153 +# _f_recursive_install ( src_root, src_names, dest_root, file_mode )
154 +#
155 +# Recursively installs files from <src_root>/<%name> to <dest_root>/<%name>
156 +# for each name in <src_names>.
157 +#
158 +_f_recursive_install = ( \
159 + cd $(1)/ && find $(2) -type f -print0 | \
160 + xargs -0 -n 1 -I '{FILE}' $(SHELL) -c \
161 + 'set -- install -m "$(4)" -D -- "{FILE}" "$(3)/{FILE}" && \
162 + echo "$${*}" && "$${@}"' \
163 +)
164 +
165 +# _f_install_config_files ( src_dir )
166 +#
167 +# Installs "optionally compressable" files from src_dir to CONFDIR/_PN.
168 +# (i.e. config files not installed by install-config-common)
169 +#
170 +_f_install_config_files = $(call _f_recursive_install,$(1),\
171 + license.map simple-deprules.d/,$(CONFDIR)/$(_PN),$(INSMODE))
172 +
173 +
174 PHONY += all
175 all:
176
177 -PHONY += check
178 -check:
179 - @true
180 -
181 PHONY += version
182 version:
183 @cat $(VERSION_FILE)
184 @@ -63,7 +119,7 @@ version:
185 PHONY += setver
186 setver: $(X_SETVER)
187 ifeq ($(VER),)
188 - $(error $$VER is not set.)
189 + $(error $$VER is not set)
190 else
191 $< $(VER)
192 endif
193 @@ -71,94 +127,110 @@ endif
194 PHONY += version-bump
195 version-bump: $(X_SETVER)
196 { ! $(X_GIT) status --porcelain -- $(notdir $(VERSION_FILE)) | grep .; }
197 -ifeq ($(VBUMP_COMMIT),$(filter $(VBUMP_COMMIT),y Y 1 yes YES true TRUE))
198 +ifeq ($(VBUMP_COMMIT),$(filter $(VBUMP_COMMIT),$(_TRUE_WORDS)))
199 X_GIT="$(X_GIT)" $< --reset --git-add --git-commit --git-tag +
200 else
201 X_GIT="$(X_GIT)" $< --reset --git-add +
202 endif
203
204 PHONY += test
205 -test: ./bin/run_tests
206 - ./bin/run_tests
207 +test: $(X_RUN_TESTS)
208 + $<
209
210 PHONY += clean
211 clean:
212 - rm -rf ./build/ $(BUILDDIR)/
213 + rm -rf -- $(_SETUP_PY_DIRS) $(BUILDDIR)/
214 + rm -f -- $(wildcard $(PKG_DISTDIR)/*.make_tmp)
215
216 PHONY += clean-log
217 clean-log:
218 - rm -rf -- $(LOGDIR)
219 + rm -rf -- $(LOGDIR)/
220
221 -PHONY += _pyclean
222 -_pyclean: | clean
223 - find . \( -name "*.pyc" -or -name "*.pyo" \) -delete -print
224 +PHONY += pyclean
225 +pyclean:
226 + find $(_PYMOD_DIRS) -name '*.py[co]' -delete -print
227
228 -PHONY += _pydoc_clean
229 -_pydoc_clean:
230 +PHONY += pydoc_clean
231 +pydoc_clean:
232 +# rm -f -- $(wildcard $(SELFDOC)/*.html)
233 rm -f -- $(SELFDOC)/*.html
234 - test ! -d $(SELFDOC) || rmdir --ignore-fail-on-non-empty -- $(SELFDOC)/
235
236 PHONY += distclean
237 -distclean: clean _pyclean _pydoc_clean
238 +distclean: clean pyclean pydoc_clean
239 + test ! -d $(SELFDOC) || rmdir --ignore-fail-on-non-empty -- $(SELFDOC)/
240 +
241 +$(PKG_DISTDIR) $(BUILDDIR) $(BUILDDIR)/config:
242 + mkdir -p -- "$@"
243
244 -$(BUILDDIR):
245 - @install -d $(BUILDDIR)
246 +$(SELFDOC)/roverlay: $(S)/roverlay
247 + mkdir -p -- $(@D)
248 + ln -nfsT -- $< $@
249
250 # generates selfdocs (using pydoc) in $(SELFDOC)/
251 -$(SELFDOC): | _pydoc_clean
252 - -mkdir $(SELFDOC)
253 - ln -snfT -- ../../roverlay $(SELFDOC)/roverlay
254 - $(PYDOC_SH) $(SELFDOC)
255 +$(SELFDOC): FORCE pydoc_clean | $(SELFDOC)/roverlay
256 + test -e $@/roverlay
257 + cd $@ && find roverlay/ -type f -name '*.py' | \
258 + sed -e 's,[.]py$$,,' -e 's,\/,.,g' -e 's,[.]__init__$$,,' | \
259 + xargs pydoc -w
260 + ln -nfsT -- roverlay.html $@/index.html
261 + rm -f $@/roverlay
262
263 # alias to $(SELFDOC)
264 PHONY += pydoc
265 pydoc: $(SELFDOC)
266
267 +$(SRC_DOCDIR)/html/%.html: $(SRC_DOCDIR)/rst/%.rst
268 + @mkdir -p $(@D)
269 + $(X_RST2HTML) --title '$(HTMLDOC_TITLE)' --date '$<' '$@'
270 +
271 PHONY += htmldoc
272 -htmldoc: $(SRC_DOCDIR)/rst/usage.rst
273 - @install -d $(SRC_DOCDIR)/html
274 - $(RST_HTML) $(SRC_DOCDIR)/rst/usage.rst $(SRC_DOCDIR)/html/usage.html
275 +htmldoc: $(addsuffix .html,$(addprefix $(SRC_DOCDIR)/html/,$(HTML_DOCS)))
276
277 PHONY += generate-doc
278 generate-doc: htmldoc
279
280 $(MANIFEST): $(MANIFEST_GEN) FORCE
281 + @mkdir -p $(@D)
282 $< > $@
283
284 PHONY += generate-manifest
285 generate-manifest: $(MANIFEST)
286
287 -$(LICENSES_FILE): $(LICENSES_GEN) FORCE | $(CURDIR)/files
288 +$(LICENSES_FILE): $(LICENSES_GEN) FORCE
289 + @mkdir -p $(@D)
290 $< $@
291
292 PHONY += generate-licenses
293 -generate-licenses: $(CURDIR)/files/licenses
294 +generate-licenses: $(LICENSES_FILE)
295
296
297 -
298 -$(CURDIR)/config/R-overlay.conf.install: $(RV_SETUP) FORCE | $(CURDIR)/config
299 +$(S)/config/R-overlay.conf.install: $(RV_SETUP) FORCE
300 + @mkdir -p $(@D)
301 ROVERLAY_INSTALLED=1 $< --target-type gentoo \
302 -O $@ \
303 - -D $(DATADIR)/roverlay \
304 - --conf-root $(CONFDIR)/roverlay --my-conf-root $(CONFDIR)/roverlay \
305 - -A $(CONFDIR)/roverlay/files \
306 + -D $(DATADIR)/$(_PN) \
307 + --conf-root $(CONFDIR)/$(_PN) --my-conf-root $(CONFDIR)/$(_PN) \
308 + -A $(CONFDIR)/$(_PN)/files \
309 mkconfig
310
311 -$(CURDIR)/config/R-overlay.conf.install.others: $(RV_SETUP) FORCE | $(CURDIR)/config
312 +$(S)/config/R-overlay.conf.install.others: $(RV_SETUP) FORCE
313 + @mkdir -p $(@D)
314 ROVERLAY_INSTALLED=1 $< --target-type foreign \
315 -O $@ \
316 - -D $(DATADIR)/roverlay \
317 - --conf-root $(CONFDIR)/roverlay --my-conf-root $(CONFDIR)/roverlay \
318 - -A $(CONFDIR)/roverlay/files \
319 + -D $(DATADIR)/$(_PN) \
320 + --conf-root $(CONFDIR)/$(_PN) --my-conf-root $(CONFDIR)/$(_PN) \
321 + -A $(CONFDIR)/$(_PN)/files \
322 mkconfig
323
324 -$(CURDIR)/R-overlay.conf: $(RV_SETUP) FORCE
325 +$(S)/R-overlay.conf: $(RV_SETUP) FORCE
326 + @mkdir -p $(@D)
327 ROVERLAY_INSTALLED=0 $< --target-type gentoo \
328 -O $@ --prjroot-relpath \
329 -D files --conf-root config --my-conf-root config -A files -W workdir \
330 mkconfig
331
332 -$(CURDIR)/R-overlay.conf.others: $(RV_SETUP) FORCE
333 +$(S)/R-overlay.conf.others: $(RV_SETUP) FORCE
334 + @mkdir -p $(@D)
335 ROVERLAY_INSTALLED=0 $< --target-type foreign \
336 -O $@ --prjroot-relpath \
337 -D files --conf-root config --my-conf-root config -A files -W workdir \
338 @@ -166,17 +238,17 @@ $(CURDIR)/R-overlay.conf.others: $(RV_SETUP) FORCE
339
340 PHONY += generate-config
341 generate-config: \
342 - $(CURDIR)/config/R-overlay.conf.install \
343 - $(CURDIR)/config/R-overlay.conf.install.others \
344 - $(CURDIR)/R-overlay.conf \
345 - $(CURDIR)/R-overlay.conf.others
346 + $(S)/config/R-overlay.conf.install \
347 + $(S)/config/R-overlay.conf.install.others \
348 + $(S)/R-overlay.conf \
349 + $(S)/R-overlay.conf.others
350
351
352 PHONY += generate-files
353 -generate-files: generate-config generate-doc generate-manifest generate-licenses
354 +generate-files: $(addprefix generate-,config doc manifest licenses)
355
356 PHONY += generate-files-commit
357 -generate-files-commit:
358 +generate-files-commit: gemerate-files
359 { ! $(X_GIT) status --porcelain -- . | grep ^[MADRCU]; }
360 $(X_GIT) add -vu -- \
361 R-overlay.conf \
362 @@ -188,117 +260,247 @@ generate-files-commit:
363 $(X_GIT) commit -m "update generated files"
364
365 # creates a src tarball (.tar.bz2)
366 -PHONY += release
367 -release: generate-files
368 +PHONY += dist
369 +dist: distclean generate-files | $(PKG_DISTDIR)
370 +ifeq ($(X_BZIP2)$(X_GZIP)$(X_XZ),)
371 + $(error at least one of X_BZIP2, X_GZIP, X_XZ must be set)
372 +endif
373 $(eval MY_$@_BASEVER := $(shell cat $(VERSION_FILE)))
374 test -n '$(MY_$@_BASEVER)'
375 - $(eval MY_$@_HEADREF := $(shell git rev-parse --verify HEAD))
376 +
377 + $(eval MY_$@_HEADREF := $(shell $(X_GIT) rev-parse --verify HEAD))
378 test -n '$(MY_$@_HEADREF)'
379 - $(eval MY_$@_VREF := $(shell git rev-parse --verify $(MY_$@_BASEVER) 2>/dev/null))
380 -ifeq ($(RELEASE_NOT_DIRTY),$(filter $(RELEASE_NOT_DIRTY),y Y 1 yes YES true TRUE))
381 +
382 + $(eval MY_$@_VREF := $(shell $(X_GIT) rev-parse --verify $(MY_$@_BASEVER) 2>/dev/null))
383 +
384 +ifeq ($(RELEASE_NOT_DIRTY),$(filter $(RELEASE_NOT_DIRTY),$(_TRUE_WORDS)))
385 $(eval MY_$@_VER := $(MY_$@_BASEVER))
386 else
387 $(eval MY_$@_VER := $(MY_$@_BASEVER)$(shell \
388 test "$(MY_$@_HEADREF)" = "$(MY_$@_VREF)" || echo '$(RELEASE_DIRTY_SUFFIX)'))
389 endif
390 - $(eval MY_$@_FILE := $(PKG_DISTDIR)/roverlay_$(MY_$@_VER).tar)
391
392 - install -d -m 0755 -- $(PKG_DISTDIR)
393 - git archive --worktree-attributes --format=tar HEAD \
394 - --prefix=roverlay_$(MY_$@_VER)/ > $(MY_$@_FILE).make_tmp
395 + $(eval MY_$@_FILE := $(PKG_DISTDIR)/$(DISTNAME)_$(MY_$@_VER).tar)
396 +
397
398 - bzip2 -c $(MY_$@_FILE).make_tmp > $(MY_$@_FILE).bz2
399 + $(X_GIT) archive --worktree-attributes --format=tar HEAD \
400 + --prefix=$(DISTNAME)_$(MY_$@_VER)/ > $(MY_$@_FILE).make_tmp
401 +
402 +ifneq ($(X_BZIP2),)
403 + $(X_BZIP2) -c $(MY_$@_FILE).make_tmp > $(MY_$@_FILE).bz2
404 +endif
405 +ifneq ($(X_GZIP),)
406 + $(X_GZIP) -c $(MY_$@_FILE).make_tmp > $(MY_$@_FILE).gz
407 +endif
408 +ifneq ($(X_XZ),)
409 + $(X_XZ) -c $(MY_$@_FILE).make_tmp > $(MY_$@_FILE).xz
410 +endif
411 rm -- $(MY_$@_FILE).make_tmp
412
413
414 -PHONY += dist
415 -dist: distclean release
416 +# rule for compressing a deprule file
417 +$(BUILDDIR)/config/simple-deprules.d/%$(X_COMPRESS_SUFFIX): \
418 + $(S)/config/simple-deprules.d/%
419 +
420 + @mkdir -p $(@D)
421 + $(X_COMPRESS) -c $< > $@
422 +
423 +# rule for compressing all deprule files
424 +PHONY += _compress-deprules
425 +_compress-deprules: $(shell \
426 + find $(S)/config/simple-deprules.d/ -type f | sed \
427 + -e 's,^$(S)/,$(BUILDDIR)/,' -e 's,$$,$(X_COMPRESS_SUFFIX),')
428
429 PHONY += compress-config
430 -compress-config: $(BUILDDIR)
431 - @install -d $(BUILDDIR)/config
432 - cp -vLr -p --no-preserve=ownership config/simple-deprules.d $(BUILDDIR)/config/
433 - find $(BUILDDIR)/config/simple-deprules.d/ -type f -print0 | xargs -0 -n 5 --verbose $(X_COMPRESS)
434 - $(X_COMPRESS) -c config/license.map > $(BUILDDIR)/config/license.map
435 -
436 -PHONY += install-roverlay
437 -install-roverlay: ./roverlay.py
438 - install -T -D -- ./roverlay.py $(BINDIR)/roverlay
439 -
440 -PHONY += install-pymodules
441 -install-pymodules: ./setup.py
442 - $(PYTHON) ./setup.py install --record $(PYMOD_FILE_LIST)
443 -
444 -PHONY += install-config-common
445 -install-config-common:
446 - install -m 0755 -d $(CONFDIR)/roverlay
447 - install -m 0644 -t $(CONFDIR)/roverlay \
448 +compress-config: _compress-deprules | $(BUILDDIR)/config
449 + $(X_COMPRESS) -c config/license.map > $(BUILDDIR)/config/license.map
450 +
451 +
452 +PHONY += install-config
453 +install-config:
454 + $(_DODIR) $(CONFDIR)/$(_PN)
455 + $(_DOINS) -t $(CONFDIR)/$(_PN) \
456 config/description_fields.conf config/repo.list \
457 config/package_rules config/hookrc
458 ifeq ($(ROVERLAY_TARGET_TYPE),gentoo)
459 - install -m 0644 -T \
460 - config/R-overlay.conf.install $(CONFDIR)/roverlay/R-overlay.conf
461 + $(_DOINS) -T \
462 + config/R-overlay.conf.install $(CONFDIR)/$(_PN)/R-overlay.conf
463 else
464 - install -m 0644 -T \
465 - config/R-overlay.conf.install.others $(CONFDIR)/roverlay/R-overlay.conf
466 + $(_DOINS) -T \
467 + config/R-overlay.conf.install.others $(CONFDIR)/$(_PN)/R-overlay.conf
468 +endif
469 +ifeq ($(COMPRESSED_CONFIG),$(filter $(COMPRESSED_CONFIG),$(_TRUE_WORDS)))
470 + $(call _f_install_config_files,$(BUILDDIR)/config)
471 +else
472 + $(call _f_install_config_files,$(S)/config)
473 endif
474
475 -PHONY += install-config-compressed
476 -install-config-compressed: install-config-common
477 - cp -vLr -p --no-preserve=ownership \
478 - $(BUILDDIR)/config/simple-deprules.d $(BUILDDIR)/config/license.map \
479 - $(CONFDIR)/roverlay/
480 -
481 -PHONY += install-config
482 -install-config: install-config-common
483 - cp -vLr -p --no-preserve=ownership \
484 - config/simple-deprules.d config/license.map \
485 - $(CONFDIR)/roverlay/
486 -
487 -
488 -# license.map deprules
489 PHONY += install-data
490 install-data:
491 - install -m 0755 -d \
492 - $(DATADIR)/roverlay \
493 - $(DATADIR)/roverlay/shlib $(DATADIR)/roverlay/hooks \
494 - $(DATADIR)/roverlay/eclass $(DATADIR)/roverlay/mako_templates
495 + $(_DODIR) -- \
496 + $(addprefix $(DATADIR)/$(_PN)/,shlib hooks eclass mako_templates)
497
498 ifeq ($(ROVERLAY_TARGET_TYPE),gentoo)
499 - install -m 0644 -- files/setup.defaults $(DATADIR)/setup.defaults
500 + $(_DOINS) -- files/setup.defaults $(DATADIR)/setup.defaults
501 else
502 - install -m 0644 -- files/setup.defaults.others $(DATADIR)/setup.defaults
503 - install -m 0644 -- $(LICENSES_FILE) $(DATADIR)/roverlay/licenses
504 + $(_DOINS) -- files/setup.defaults.others $(DATADIR)/setup.defaults
505 + $(_DOINS) -- $(LICENSES_FILE) $(DATADIR)/$(_PN)/licenses
506 endif
507 - install -m 0644 -t $(DATADIR)/roverlay/hooks files/hooks/*.sh
508 - install -m 0644 -t $(DATADIR)/roverlay/shlib files/shlib/*.sh
509 - chmod 0775 $(DATADIR)/roverlay/hooks/mux.sh
510 -
511 - install -m 0644 -t $(DATADIR)/roverlay/eclass files/eclass/*.eclass
512 -
513 - install -m 0644 -t $(DATADIR)/roverlay/mako_templates \
514 - files/mako_templates/*.*
515 + $(_DOINS) -t $(DATADIR)/$(_PN)/hooks -- $(wildcard files/hooks/*.sh)
516 + chmod $(EXEMODE) -- $(DATADIR)/$(_PN)/hooks/mux.sh
517 + $(_DOINS) -t $(DATADIR)/$(_PN)/shlib -- $(wildcard files/shlib/*.sh)
518 + $(_DOINS) -t $(DATADIR)/$(_PN)/eclass -- $(wildcard files/eclass/*.eclass)
519 + $(_DOINS) -t $(DATADIR)/$(_PN)/mako_templates -- \
520 + $(wildcard files/mako_templates/*.*)
521 +
522 +PHONY += install-bashcomp
523 +install-bashcomp:
524 + $(_DODIR) $(BASHCOMPDIR)
525 + $(foreach f,$(wildcard $(S)/files/misc/*.bashcomp),\
526 + $(_DOINS) -- $(f) $(BASHCOMPDIR)/$(notdir $(basename $(f))))
527
528 PHONY += install
529 -install: install-pymodules install-roverlay
530 +install: $(SETUP_PY)
531 + $(PYTHON) $< install --root $(DESTDIR) --record $(PYMOD_FILE_LIST)
532
533 -PHONY += install-all
534 -install-all: install
535 +PHONY += install-nonpy
536 +install-nonpy: $(addprefix install-,data config bashcomp)
537
538 -PHONY += uninstall-roverlay
539 -uninstall-roverlay:
540 - rm -vf -- $(BINDIR)/roverlay
541 +PHONY += install-all
542 +install-all: install install-nonpy
543
544 -PHONY += uninstall-pymodules
545 -uninstall-pymodules: $(PYMOD_FILE_LIST)
546 +PHONY += uninstall
547 +uninstall: $(PYMOD_FILE_LIST)
548 xargs rm -vrf < $(PYMOD_FILE_LIST)
549
550 -PHONY += uninstall
551 -uinstall:
552 +PHONY += uninstall-all
553 +uninstall-all:
554 @false
555
556 -PHONY += uninstall-all
557 -uninstall-all: uninstall
558 +PHONY += help
559 +help:
560 + $(eval MY_$@_GENITIVE := $(_PN)'\''s)
561 +
562 + @echo 'Basic Targets:'
563 + @echo ' all - do nothing'
564 + @echo ' version - print $(MY_$@_GENITIVE) version'
565 + @echo ' compress-config - compress config files with X_COMPRESS'
566 + @echo ' and write them to BUILDDIR/config'
567 + @echo ' (X_COMPRESS: $(X_COMPRESS))'
568 + @echo ' (BUILDDIR : $(BUILDDIR:$(CURDIR)/%=%))'
569 +# @echo ' _compress-deprules - compress dependency rule files with X_COMPRESS'
570 + @echo ' test - run tests'
571 + @echo ''
572 +
573 + @echo '(Un-)Install Targets:'
574 + @echo ' install-all - run all targets marked with [I]'
575 + @echo ' uninstall-all - ***not available***'
576 + @echo ' install-nonpy - run all targets marked with [I] except'
577 + @echo ' "install"'
578 + @echo 'I install - install scripts and python modules to DESTDIR'
579 + @echo ' (DESTDIR: $(DESTDIR))'
580 + @echo ' uninstall - uninstall scripts / python modules'
581 + @echo 'I install-config - install config files to CONFDIR/$(_PN)'
582 + @echo ' use compressed files from BUILDDIR where'
583 + @echo ' applicable if COMPRESSED_CONFIG is "y"'
584 + @echo ' "compress-config" must be run manually!'
585 + @echo ' (CONFDIR: $(CONFDIR))'
586 + @echo ' (COMPRESSED_CONFIG: $(COMPRESSED_CONFIG))'
587 + @echo 'I install-data - install data files to DATADIR/$(_PN)'
588 + @echo ' (DATADIR: $(DATADIR))'
589 + @echo 'I install-bashcomp - install bash completion files to BASHCOMPDIR'
590 + @echo ' (BASHCOMPDIR: $(BASHCOMPDIR))'
591 + @echo ''
592 +
593 + @echo 'Cleanup Targets:'
594 + @echo ' clean - remove temporary dirs'
595 + @echo ' distclean - remove temporary dirs, .py[co] and pydoc files'
596 + @echo ' clean-log - remove log file directory LOGDIR'
597 + @echo ' (LOGDIR: $(LOGDIR:$(CURDIR)/%=%))'
598 + @echo ' pyclean - remove .py[co] files'
599 + @echo ' pydoc_clean - remove pydoc files'
600 + @echo ''
601 +
602 + @echo 'File Generation Targets:'
603 + @echo ' generate-files - run all targets marked with [G]'
604 + @echo ' pydoc - create pydoc files (in-code documentation)'
605 + @echo ' htmldoc - create html documentation (usage guide)'
606 + @echo 'G generate-doc - alias to "htmldoc"'
607 + @echo 'G generate-manifest - create a MANIFEST file for setup.py'
608 + @echo 'G generate-licenses - create a licenses file and write it to'
609 + @echo ' LICENSES_FILE, for systems without PORTDIR'
610 + @echo ' (default: $(LICENSES_FILE:$(CURDIR)/%=%))'
611 + @echo 'G generate-config - create R-overlay.conf config files'
612 + @echo ''
613 +
614 + @echo 'Release/Devel Helper Targets:'
615 + @echo ' generate-files-commit - run "generate-files" and commit changes'
616 + @echo ' version-bump - increase $(MY_$@_GENITIVE) version (patchlevel)'
617 + @echo ' and git commit/tag depending on VBUMP_COMMIT'
618 + @echo ' (default: $(VBUMP_COMMIT))'
619 + @echo ' setver - set $(MY_$@_GENITIVE) version to VER'
620 + @echo ' (default: <not set>)'
621 + @echo ' dist - create source tarball(s) in PKG_DISTDIR:'
622 + @echo ' DISTNAME_<version>.tar.<compression suffix>'
623 + @echo ' (implies "distclean" and "generate-files")'
624 + @echo ' (PKG_DISTDIR: $(PKG_DISTDIR:$(CURDIR)/%=%))'
625 + @echo ' (DISTNAME: $(DISTNAME))'
626 + @echo ''
627 + @echo ''
628 + @echo 'Variables:'
629 + @echo '* ROVERLAY_TARGET_TYPE - controls which files get installed and should'
630 + @echo ' be either "gentoo" or "foreign" [$(ROVERLAY_TARGET_TYPE)]'
631 + @echo ' Pick "foreign" for systems'
632 + @echo ' without portage and/or PORTDIR.'
633 + @echo '* COMPRESSED_CONFIG - whether to install compressed config files (y)'
634 + @echo ' or not (n) [$(COMPRESSED_CONFIG)]'
635 + @echo '* DESTDIR - installation root directory'
636 + @echo ' [$(DESTDIR)]'
637 + @echo '* DESTTREE - installation directory with prefix'
638 + @echo ' (DESTDIR/usr/) [$(DESTTREE)]'
639 + @echo '* DATADIR - directory for data files (DESTTREE/share)'
640 + @echo ' [$(DATADIR)]'
641 + @echo '* BINDIR - directory for executables (DESTTREE/bin)'
642 + @echo ' [$(BINDIR)]'
643 + @echo '* CONFDIR - system config directory (DESTDIR/etc)'
644 + @echo ' [$(CONFDIR)]'
645 + @echo '* BASHCOMPDIR - bashcomp dir (DATADIR/bash-completion)'
646 + @echo ' [$(BASHCOMPDIR)]'
647 + @echo '* DIRMODE - mode for installing directories [$(DIRMODE)]'
648 + @echo '* INSMODE - mode for installing files [$(INSMODE)]'
649 + @echo '* EXEMODE - mode for installing scripts [$(EXEMODE)]'
650 + @echo '* PYMOD_FILE_LIST - file for recording files installed by setup.py'
651 + @echo ' [$(PYMOD_FILE_LIST:$(CURDIR)/%=%)]'
652 + @echo '* BUILDDIR - directory for temporary build files, e.g.'
653 + @echo ' compressed config'
654 + @echo ' [$(BUILDDIR:$(CURDIR)/%=%)]'
655 + @echo ''
656 + @echo -n '* PYVER - version of the python interpreter '
657 +ifeq ($(PYVER),)
658 + @echo '[<unset>]'
659 +else
660 + @echo '[$(PYVER)]'
661 +endif
662 + @echo '* PYTHON - name of/path to python (pythonPYVER) [$(PYTHON)]'
663 + @echo '* X_COMPRESS - default compression program (X_BZIP2) [$(X_COMPRESS)]'
664 + @echo ' (used in compress-* targets)'
665 + @echo '* X_COMPRESS_SUFFIX - file extension for compressed deprule files'
666 + @echo ' (default: depends on X_COMPRESS) [$(X_COMPRESS_SUFFIX)]'
667 + @echo '* X_BZIP2 - name of/path to bzip2 [$(X_BZIP2)]'
668 + @echo '* X_GZIP - name of/path to gzip [$(X_GZIP)]'
669 + @echo '* X_XZ - name of/path to xz [$(X_XZ)]'
670 + @echo '* X_GIT - name of/path to git [$(X_GIT)]'
671 + @echo '* X_RST2HTML - name of/path to rst2html [$(X_RST2HTML)]'
672 + @echo ''
673 + @echo '* VBUMP_COMMIT - whether to commit/tag when running'
674 + @echo ' "version-bump" (y) or not (n) [$(VBUMP_COMMIT)]'
675 + @echo '* RELEASE_NOT_DIRTY - whether to check if the dist tarball actually'
676 + @echo ' matches its version (n) or not (y) [$(RELEASE_NOT_DIRTY)]'
677 + @echo '* RELEASE_DIRTY_SUFFIX - suffix for "dirty" dist tarballs [$(RELEASE_DIRTY_SUFFIX)]'
678 + @echo '* DISTNAME - base name for source tarballs [$(DISTNAME)]'
679 + @echo '* PKG_DISTDIR - directory for storing source tarballs'
680 + @echo ' [$(PKG_DISTDIR:$(CURDIR)/%=%)]'
681 +
682
683 PHONY += FORCE
684 FORCE: