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: |