1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
# Topal: GPG/GnuPG and Alpine/Pine integration
# Copyright (C) 2001--2010 Phillip J. Brooke
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
.PHONY: all clean realclean distclean package install distrib all2 FORCE
RELEASECODE=$(shell grep '^<dt>' README.html | tail -1 | sed 's/.* release //; sx</a>.*$$xx')
BUILDDATE=$(shell date '+%Y-%m-%dT%H%M%S%Z')
# If you intend to redistribute this package, you will obviously need
# to substitute your own key id here.
MYKEY=0x50973B91
GENFILES=$(addprefix ./,version_id.adb help.ads help.adb b~topal.ads b~topal.adb)
CFILES=$(shell find . -maxdepth 1 -name \*.c)
ADSFILES=$(filter-out $(GENFILES),$(shell find . -maxdepth 1 -name \*.ads))
ADBFILES=$(filter-out $(GENFILES),$(shell find . -maxdepth 1 -name \*.adb))
OTHERFILES=Makefile README.html topal.man COPYING mkversionid mkhelp help.txt mkdistrib $(shell find . -maxdepth 1 -name pine-\*.patch) $(shell find . -maxdepth 1 -name alpine-\*.patch) $(shell find . -maxdepth 1 -name alpine-\*.patch-\*)
TOPALDEPS=ada-readline-c.o ada-echo-c.o externals-c.o version_id.adb help.ads help.adb $(ADSFILES) $(ADBFILES)
INSTALLPATH ?= /usr
INSTALLPATHBIN ?= $(INSTALLPATH)/bin
INSTALLPATHMAN ?= $(INSTALLPATH)/share/man
INSTALLPATHDOC ?= $(INSTALLPATH)/share/doc/topal
INSTALLPATHPATCHES ?= $(INSTALLPATH)/share/topal/patches
# The default action.
all: topal mime-tool README.txt
all2: package distrib
ada-readline-c.o: ada-readline-c.c
gcc -c -Wall -O2 $(TOPALDEBUG) ada-readline-c.c
ada-echo-c.o: ada-echo-c.c
gcc -c -Wall -O2 $(TOPALDEBUG) ada-echo-c.c
externals-c.o: externals-c.c
gcc -c -Wall -O2 $(TOPALDEBUG) externals-c.c
mime-tool:
make -C MIME-tool
topal: $(TOPALDEPS)
gnatmake -gnatwa -gnato -O2 $(TOPALDEBUG) topal
-strip topal
topal.gz: topal
gzip -c9 topal > topal.gz
topal.gz.asc: topal.gz
-rm topal.gz.asc
-gpg --detach-sign --armor --local-user=$(MYKEY) --use-agent topal.gz
topal-ps: $(TOPALDEPS)
gnatmake -gnatwa -gnato -o topal-ps -O2 $(TOPALDEBUG) topal -bargs -static
-strip topal-ps
topal-ps.gz: topal-ps
gzip -c9 topal-ps > topal-ps.gz
topal-ps.gz.asc: topal-ps.gz
-rm topal-ps.gz.asc
-gpg --detach-sign --armor --local-user=$(MYKEY) --use-agent topal-ps.gz
# FORCE, because BUILDDATE changes each time....
version_id.adb: mkversionid FORCE
./mkversionid $(RELEASECODE) $(BUILDDATE)
help.ads help.adb: mkhelp help.txt
./mkhelp
README.txt: README.html
lynx -dont_wrap_pre -underscore -nolist -dump README.html > README.txt
install: all
install -d $(INSTALLPATHBIN) $(INSTALLPATHDOC) $(INSTALLPATHMAN)/man1 $(INSTALLPATHPATCHES)
install -m 755 -s topal $(INSTALLPATHBIN)
install -m 644 README.html README.txt COPYING $(INSTALLPATHDOC)
install -m 644 topal.man $(INSTALLPATHMAN)/man1/topal.1
install -m 644 pine-*.patch alpine-*.patch alpine-*.patch-* $(INSTALLPATHPATCHES)
install -m 755 -s MIME-tool/mime-tool $(INSTALLPATHBIN)
install -m 644 MIME-tool/mime-tool.man $(INSTALLPATHMAN)/man1/mime-tool.1
clean:
-rm *.o *.ali $(GENFILES)
# Clean packaging directories.
-rm -rf topal-[0-9]*
make -C MIME-tool clean
distclean realclean: clean
-rm topal topal.gz topal.gz.asc topal-ps topal-ps.gz topal-ps.gz.asc README.txt topal-package*.{tgz,tgz.sig,tgz.asc} *~
-rm -rf www www.bak
make -C MIME-tool realclean
package: topal-package-$(RELEASECODE).tgz topal-package-$(RELEASECODE).tgz.asc
topal-package-$(RELEASECODE).tgz: $(CFILES) $(ADSFILES) $(ADBFILES) $(OTHERFILES) README.txt
-rm -rf topal-$(RELEASECODE)
mkdir topal-$(RELEASECODE)
cp -r $(CFILES) $(ADSFILES) $(ADBFILES) $(OTHERFILES) README.txt MIME-tool topal-$(RELEASECODE)
find topal-$(RELEASECODE) -type f | xargs chmod 644
find topal-$(RELEASECODE) -type f -name mk\* | xargs chmod 755
chmod 755 topal-$(RELEASECODE)
tar cvzf topal-package-$(RELEASECODE).tgz topal-$(RELEASECODE)
topal-package-$(RELEASECODE).tgz.asc: topal-package-$(RELEASECODE).tgz
-rm topal-package-$(RELEASECODE).tgz.asc
-gpg --detach-sign --armor --local-user=$(MYKEY) --use-agent topal-package-$(RELEASECODE).tgz
distrib: topal-package-$(RELEASECODE).tgz.asc topal.gz.asc topal-ps.gz.asc mkdistrib
-rm -rf www
mkdir www
cp topal-package-$(RELEASECODE).tgz topal-package-$(RELEASECODE).tgz.asc topal.gz topal.gz.asc topal-ps.gz topal-ps.gz.asc README.html COPYING pine-*.patch alpine-*.patch alpine-*.patch-* www
cd www && ../mkdistrib $(RELEASECODE)
FORCE:
|