1 |
commit: f7b9302ecf014c0699f9114556755a7294ef2974 |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Mon Mar 31 17:51:40 2014 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Tue Apr 1 16:36:36 2014 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=f7b9302e |
7 |
|
8 |
Makefile: $ROVERLAY_TARGET_TYPE |
9 |
|
10 |
ROVERLAY_TARGET_TYPE controls which files get installed: |
11 |
|
12 |
when gentoo: |
13 |
=> config/R-overlay.conf.install |
14 |
=> no licenses file |
15 |
|
16 |
when others: |
17 |
=> config/R-overlay.conf.install.others |
18 |
=> install files/licenses to $DATADIR/licenses |
19 |
|
20 |
Also added a "generate-licenses" target for creating files/licenses. |
21 |
|
22 |
--- |
23 |
Makefile | 32 ++++++++++++++++++++++------ |
24 |
bin/build/make-licenses.sh | 53 ++++++++++++++++++++++++++++++++++++++++++++++ |
25 |
2 files changed, 79 insertions(+), 6 deletions(-) |
26 |
|
27 |
diff --git a/Makefile b/Makefile |
28 |
index 9a41011..06933f8 100644 |
29 |
--- a/Makefile |
30 |
+++ b/Makefile |
31 |
@@ -9,13 +9,16 @@ CONFDIR := $(DESTDIR)etc |
32 |
|
33 |
BUILDDIR := ./tmp |
34 |
|
35 |
+ROVERLAY_TARGET_TYPE := gentoo |
36 |
+ |
37 |
|
38 |
PYMOD_FILE_LIST := ./roverlay_files.list |
39 |
|
40 |
-MANIFEST := MANIFEST |
41 |
-MANIFEST_TMP := $(MANIFEST).tmp |
42 |
+MANIFEST := $(CURDIR)/MANIFEST |
43 |
+LICENSES_FILE := $(CURDIR)/files/licenses |
44 |
|
45 |
MANIFEST_GEN := ./bin/build/create_manifest.sh |
46 |
+LICENSES_GEN := ./bin/build/make-licenses.sh |
47 |
|
48 |
RV_SETUP := ./bin/roverlay-setup |
49 |
|
50 |
@@ -90,10 +93,18 @@ htmldoc: $(SRC_DOCDIR)/rst/usage.rst |
51 |
PHONY += generate-doc |
52 |
generate-doc: htmldoc |
53 |
|
54 |
+$(MANIFEST): $(MANIFEST_GEN) FORCE |
55 |
+ $< > $@ |
56 |
+ |
57 |
PHONY += generate-manifest |
58 |
-generate-manifest: $(MANIFEST_GEN) |
59 |
- $(MANIFEST_GEN) > $(MANIFEST_TMP) |
60 |
- mv -- $(MANIFEST_TMP) $(MANIFEST) |
61 |
+generate-manifest: $(MANIFEST) |
62 |
+ |
63 |
+$(LICENSES_FILE): $(LICENSES_GEN) FORCE | $(CURDIR)/files |
64 |
+ $< $@ |
65 |
+ |
66 |
+PHONY += generate-licenses |
67 |
+generate-licenses: $(CURDIR)/files/licenses |
68 |
+ |
69 |
|
70 |
|
71 |
$(CURDIR)/config/R-overlay.conf.install: $(RV_SETUP) FORCE | $(CURDIR)/config |
72 |
@@ -133,7 +144,7 @@ generate-config: \ |
73 |
|
74 |
|
75 |
PHONY += generate-files |
76 |
-generate-files: generate-config generate-doc generate-manifest |
77 |
+generate-files: generate-config generate-doc generate-manifest generate-licenses |
78 |
|
79 |
# creates a src tarball (.tar.bz2) |
80 |
# !!! does not include config files |
81 |
@@ -167,8 +178,13 @@ install-config-common: |
82 |
install -m 0644 -t $(CONFDIR)/roverlay \ |
83 |
config/description_fields.conf config/repo.list \ |
84 |
config/package_rules config/hookrc |
85 |
+ifeq ($(ROVERLAY_TARGET_TYPE),gentoo) |
86 |
install -m 0644 -T \ |
87 |
config/R-overlay.conf.install $(CONFDIR)/roverlay/R-overlay.conf |
88 |
+else |
89 |
+ install -m 0644 -T \ |
90 |
+ config/R-overlay.conf.install.others $(CONFDIR)/roverlay/R-overlay.conf |
91 |
+endif |
92 |
|
93 |
PHONY += install-config-compressed |
94 |
install-config-compressed: install-config-common |
95 |
@@ -187,9 +203,13 @@ install-config: install-config-common |
96 |
PHONY += install-data |
97 |
install-data: |
98 |
install -m 0755 -d \ |
99 |
+ $(DATADIR)/roverlay \ |
100 |
$(DATADIR)/roverlay/shlib $(DATADIR)/roverlay/hooks \ |
101 |
$(DATADIR)/roverlay/eclass $(DATADIR)/roverlay/mako_templates |
102 |
|
103 |
+ifneq ($(ROVERLAY_TARGET_TYPE),gentoo) |
104 |
+ install -m 0644 -- $(LICENSES_FILE) $(DATADIR)/roverlay/licenses |
105 |
+endif |
106 |
install -m 0644 -t $(DATADIR)/roverlay/hooks files/hooks/*.sh |
107 |
install -m 0644 -t $(DATADIR)/roverlay/shlib files/shlib/*.sh |
108 |
chmod 0775 $(DATADIR)/roverlay/hooks/mux.sh |
109 |
|
110 |
diff --git a/bin/build/make-licenses.sh b/bin/build/make-licenses.sh |
111 |
new file mode 100755 |
112 |
index 0000000..77ae1d0 |
113 |
--- /dev/null |
114 |
+++ b/bin/build/make-licenses.sh |
115 |
@@ -0,0 +1,53 @@ |
116 |
+#!/bin/sh |
117 |
+# |
118 |
+# Creates a license list file for roverlay. |
119 |
+# |
120 |
+# Usage: make-licenses [dest_file] [compression] |
121 |
+# |
122 |
+# Environment variables: |
123 |
+# * PORTDIR: path to the main tree (= root of the "licenses" dir) |
124 |
+# |
125 |
+set -u |
126 |
+ |
127 |
+die() { echo "${1:-error}" 1>&2; exit ${2:-2}; } |
128 |
+ |
129 |
+mkmap() { |
130 |
+ local x |
131 |
+ # find -type f, ls -1, ... |
132 |
+ set +f |
133 |
+ for x in "${PORTDIR}/licenses/"*; do |
134 |
+ [ ! -f "${x}" ] || echo "${x##*/}" |
135 |
+ done |
136 |
+} |
137 |
+ |
138 |
+mkmap_bz2() { mkmap | bzip2 -c; } |
139 |
+mkmap_xz() { mkmap | xz -c; } |
140 |
+mkmap_gz() { mkmap | gzip -c; } |
141 |
+ |
142 |
+get_mkmap_func() { |
143 |
+ case "${1-}" in |
144 |
+ '') func=mkmap ;; |
145 |
+ bz2|xz|gz) func=mkmap_${1} ;; |
146 |
+ *) die "unknown compression '${1-}'." 64 ;; |
147 |
+ esac |
148 |
+} |
149 |
+ |
150 |
+if [ -z "${PORTDIR-}" ]; then |
151 |
+ PORTDIR="$(portageq get_repo_path / gentoo)" |
152 |
+ #PORTDIR="$(portageq get_repo_path $(portageq envvar EROOT) gentoo)" |
153 |
+ [ -n "${PORTDIR}" ] || PORTDIR="$(portageq envvar PORTDIR)" |
154 |
+ [ -n "${PORTDIR}" ] || die "failed to get \$PORTDIR" |
155 |
+fi |
156 |
+ |
157 |
+case "${1-}" in |
158 |
+ ''|'-') |
159 |
+ get_mkmap_func "${2-}" && ${func} |
160 |
+ ;; |
161 |
+ *.bz2|*.xz|*.gz) |
162 |
+ [ -z "${2-}" ] || [ "${2}" = "${1##*.}" ] || die |
163 |
+ get_mkmap_func "${1##*.}" && ${func} > "${1}" |
164 |
+ ;; |
165 |
+ *) |
166 |
+ get_mkmap_func "${2-}" && ${func} > "${1}" |
167 |
+ ;; |
168 |
+esac |