1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/openpkg/Makefile Tue Jul 31 12:23:42 2012 +0200 1.3 @@ -0,0 +1,177 @@ 1.4 +## 1.5 +## Makefile -- OpenPKG Framework Developer Procedures 1.6 +## Copyright (c) 2000-2012 OpenPKG GmbH <http://openpkg.com/> 1.7 +## 1.8 +## This software is property of the OpenPKG GmbH, DE MUC HRB 160208. 1.9 +## All rights reserved. Licenses which grant limited permission to use, 1.10 +## copy, modify and distribute this software are available from the 1.11 +## OpenPKG GmbH. 1.12 +## 1.13 +## THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED 1.14 +## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 1.15 +## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1.16 +## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR 1.17 +## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1.18 +## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1.19 +## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 1.20 +## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 1.21 +## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 1.22 +## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 1.23 +## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 1.24 +## SUCH DAMAGE. 1.25 +## 1.26 + 1.27 +PATH = /usr/opkg/bin:/usr/opkg/sbin:/bin:/sbin:/usr/bin:/usr/sbin 1.28 +PREFIX = /openpkg 1.29 +USER = openpkg 1.30 +GROUP = openpkg 1.31 +TAG = openpkg 1.32 + 1.33 +SH = /bin/sh 1.34 +RPM = $(PREFIX)/bin/openpkg rpm 1.35 +SUDO = sudo 1.36 +SCP = scp 1.37 +RSYNC = rsync 1.38 +RSYNC_REM = /v/openpkg/sw/bin/rsync 1.39 +MTN = mtn 1.40 + 1.41 +UPLOAD1 = openpkg@experimental.openpkg.org:/v/openpkg/download/data/framework/release/source/ 1.42 +UPLOAD2 = openpkg@experimental.openpkg.org:/v/openpkg/download/data/components/cache/openpkg/ 1.43 + 1.44 +all: 1.45 + @echo "Individual Steps:" 1.46 + @echo " $(MAKE) fetch-sh fetch third-party distribution files (standalone)" 1.47 + @echo " $(MAKE) fetch-rpm fetch third-party distribution files (requires $(PREFIX))" 1.48 + @echo " $(MAKE) build-src-sh build SOURCE SHELL package (standalone)" 1.49 + @echo " $(MAKE) build-bin-sh build BINARY SHELL package (standalone)" 1.50 + @echo " $(MAKE) build-src-rpm build SOURCE RPM package (requires $(PREFIX))" 1.51 + @echo " $(MAKE) build-bin-rpm build BINARY RPM package (requires $(PREFIX))" 1.52 + @echo " $(MAKE) install-bin-sh install BINARY SHELL package (requires $(PREFIX))" 1.53 + @echo " $(MAKE) install-bin-rpm install BINARY RPM package (requires $(PREFIX))" 1.54 + @echo " $(MAKE) uninstall uninstall entire instance under $(PREFIX)" 1.55 + @echo " $(MAKE) upload-dst upload latest DISTRIBUTION files" 1.56 + @echo " $(MAKE) upload-pkg upload latest SOURCE SHELL+RPM packages" 1.57 + @echo " $(MAKE) upload-src upload latest SOURCE repository revisions" 1.58 + @echo " $(MAKE) clean remove temporary files" 1.59 + @echo "" 1.60 + @echo "All-In-One Steps:" 1.61 + @echo " $(MAKE) bootstrap BOOTSTRAP instance under $(PREFIX) from scratch" 1.62 + @echo " $(MAKE) update UPDATE instance under $(PREFIX)" 1.63 + @echo " $(MAKE) upload upload all results" 1.64 + 1.65 +## 1.66 +## Individual Steps 1.67 +## 1.68 + 1.69 +fetch-sh: 1.70 + @echo "++ fetching third-party distribution files (manually)"; \ 1.71 + eval `egrep '^%define *V_.*' openpkg.spec | \ 1.72 + sed -e 's%^.*\(V_[a-z][a-zA-Z0-9_]*\) *\([^ ][^ ]*\).*$$%\1="\2";%'`; \ 1.73 + for url in \ 1.74 + `egrep '^Source[0-9][0-9]*: *(http|ftp)://' openpkg.spec | \ 1.75 + sed -e 's;^Source[0-9][0-9]*: *;;' -e 's;%{\(V_[a-z][a-zA-Z0-9_]*\)};$${\1};g'`; do \ 1.76 + eval "url=\"$$url\""; \ 1.77 + file=`echo "$$url" | sed -e 's;^.*/\([^/]*\)$$;../dst/\1;'`; \ 1.78 + if [ ! -f $$file ]; then \ 1.79 + echo "-- downloading $$url"; \ 1.80 + if [ ".`(which curl) 2>/dev/null | egrep '^/'`" != . ]; then \ 1.81 + curl -s -L -o "$$file" "$$url" || true; \ 1.82 + elif [ ".`(which wget) 2>/dev/null | egrep '^/'`" != . ]; then \ 1.83 + wget -q -O "$$file" "$$url" || true; \ 1.84 + elif [ ".`(which fetch) 2>/dev/null | egrep '^/'`" != . ]; then \ 1.85 + fetch -o "$$file" "$$url" || true; \ 1.86 + elif [ ".`(which lwp-download) 2>/dev/null | egrep '^/'`" != . ]; then \ 1.87 + lwp-download "$$url" "$$file" || true; \ 1.88 + else \ 1.89 + echo "ERROR: sorry, no download tool found in \$$PATH (\"curl\", \"wget\", \"fetch\", \"lwp-download\")" 1>&2; \ 1.90 + exit 1; \ 1.91 + fi; \ 1.92 + if [ ! -f "$$file" ]; then \ 1.93 + echo "ERROR: failed to download \"$$url\"" 1>&2; \ 1.94 + exit 1; \ 1.95 + fi; \ 1.96 + fi; \ 1.97 + done 1.98 + 1.99 +fetch-rpm: 1.100 + @echo "++ fetching third-party distribution files (via RPM)"; \ 1.101 + PATH="$(PATH)" $(RPM) -bf *.spec 1.102 + 1.103 +build-src-sh: 1.104 + @echo "++ building SOURCE SHELL package"; \ 1.105 + PATH="$(PATH)" $(SH) openpkg.boot -s 1.106 + 1.107 +build-bin-sh: 1.108 + @echo "++ building BINARY SHELL package"; \ 1.109 + cd ../pkg && TMPDIR="`cd ../tmp && pwd`" && export TMPDIR && \ 1.110 + PATH="$(PATH)" $(SH) openpkg-*-`date '+%Y%m%d'`.src.sh \ 1.111 + --prefix=$(PREFIX) \ 1.112 + --user=$(USER) \ 1.113 + --group=$(GROUP) \ 1.114 + --tag=$(TAG) 1.115 + 1.116 +build-src-rpm: 1.117 + @echo "++ building SOURCE RPM package"; \ 1.118 + PATH="$(PATH)" $(RPM) -bs openpkg.spec 1.119 + 1.120 +build-bin-rpm: 1.121 + @echo "++ building BINARY RPM package"; \ 1.122 + PATH="$(PATH)" $(RPM) -bb openpkg.spec 1.123 + 1.124 +install-bin-sh: 1.125 + @echo "++ installing BINARY SHELL package"; \ 1.126 + d=`cd ../pkg && pwd` && cd / && PATH="$(PATH)" $(SUDO) $(SH) $$d/openpkg-*-`date '+%Y%m%d'`.*-*-*.sh 1.127 + 1.128 +install-bin-rpm: 1.129 + @echo "++ installing BINARY RPM package"; \ 1.130 + d=`cd ../pkg && pwd` && cd / && PATH="$(PATH)" $(SUDO) $(RPM) -Uvh --replacepkgs $$d/openpkg-*-`date '+%Y%m%d'`.*-*-*.rpm 1.131 + 1.132 +uninstall: 1.133 + -@echo "++ uninstalling ENTIRE instance"; \ 1.134 + cd /; $(RPM) -qa | grep -v '^openpkg-[0-9]' | xargs $(SUDO) $(RPM) -e; \ 1.135 + $(SUDO) $(RPM) -e openpkg 1.136 + 1.137 +upload-dst: 1.138 + @echo "++ uploading vendor DISTRIBUTION files:"; \ 1.139 + $(RSYNC) -raH --delete -v --progress --rsync-path=$(RSYNC_REM) ../dst/ $(UPLOAD2) 1.140 + 1.141 +upload-pkg: 1.142 + @echo "++ uploading SOURCE SHELL/RPM package(s):"; \ 1.143 + $(RSYNC) -raH --delete -v --progress --rsync-path=$(RSYNC_REM) ../pkg/*.src.* $(UPLOAD1) 1.144 + 1.145 +upload-src: 1.146 + @echo "++ uploading SOURCE repository revision(s):"; \ 1.147 + $(MTN) sync 1.148 + 1.149 +clean: 1.150 + -rm -rf ../tmp/* 1.151 + 1.152 +pod2man: 1.153 + pod2man --section=1 --center="OpenPKG" --release="OPENPKG(8)" --date="OpenPKG" --quotes=none openpkg.pod >openpkg.1 1.154 + pod2man --section=8 --center="OpenPKG" --release="RC(8)" --date="OpenPKG" --quotes=none rc.pod >rc.8 1.155 + pod2man --section=8 --center="OpenPKG" --release="RPMTOOL(8)" --date="OpenPKG" --quotes=none rpmtool.pod >rpmtool.8 1.156 + pod2man --section=8 --center="OpenPKG" --release="LSYNC(8)" --date="OpenPKG" --quotes=none lsync.pod >lsync.8 1.157 + pod2man --section=8 --center="OpenPKG" --release="RPM-CONFIG(8)" --date="OpenPKG" --quotes=none rpm-config.pod >rpm-config.8 1.158 + pod2man --section=8 --center="OpenPKG" --release="UUID(8)" --date="OpenPKG" --quotes=none uuid.pod >uuid.8 1.159 + pod2man --section=8 --center="OpenPKG" --release="RELEASE(8)" --date="OpenPKG" --quotes=none release.pod >release.8 1.160 + pod2man --section=8 --center="OpenPKG" --release="BUILD(8)" --date="OpenPKG" --quotes=none build.pod >build.8 1.161 + pod2man --section=8 --center="OpenPKG" --release="INDEX(8)" --date="OpenPKG" --quotes=none index.pod >index.8 1.162 + pod2man --section=8 --center="OpenPKG" --release="SEARCH(8)" --date="OpenPKG" --quotes=none search.pod >search.8 1.163 + pod2man --section=8 --center="OpenPKG" --release="MIRROR(8)" --date="OpenPKG" --quotes=none mirror.pod >mirror.8 1.164 + pod2man --section=8 --center="OpenPKG" --release="MAKEPROXY(8)" --date="OpenPKG" --quotes=none makeproxy.pod >makeproxy.8 1.165 + pod2man --section=8 --center="OpenPKG" --release="REGISTER(8)" --date="OpenPKG" --quotes=none register.pod >register.8 1.166 + pod2man --section=8 --center="OpenPKG" --release="LICENSE(8)" --date="OpenPKG" --quotes=none license.pod >license.8 1.167 + pod2man --section=8 --center="OpenPKG" --release="DEV(8)" --date="OpenPKG" --quotes=none dev.pod >dev.8 1.168 + pod2man --section=8 --center="OpenPKG" --release="SEA(8)" --date="OpenPKG" --quotes=none sea.pod >sea.8 1.169 + pod2man --section=8 --center="OpenPKG" --release="STACK(8)" --date="OpenPKG" --quotes=none stack.pod >stack.8 1.170 + 1.171 +## 1.172 +## All-In-One Steps 1.173 +## 1.174 + 1.175 +bootstrap: build-src-sh build-bin-sh install-bin-sh 1.176 + 1.177 +update: build-bin-rpm install-bin-rpm 1.178 + 1.179 +upload: build-src-sh build-src-rpm upload-pkg upload-src 1.180 +