File: Makefile

package info (click to toggle)
topal 72-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 1,004 kB
  • ctags: 102
  • sloc: ada: 9,192; ansic: 768; sh: 233; makefile: 148
file content (130 lines) | stat: -rw-r--r-- 4,902 bytes parent folder | download
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: