nailfuns: add NYD2 series (only if HAVE_NYD2)
[s-mailx.git] / makefile
blobb51466bce68ad14f8d52712f6d748e4749169539
1 #@ Makefile for S-nail.
2 #@ Adjustments have to be made in `conf.rc' (or on the command line).
3 #@ See the file `INSTALL' if you need help.
5 .PHONY: all install uninstall clean distclean config build test
7 all: config
8 @LC_ALL=C $(MAKE) -f mk.mk all
9 install: all
10 @LC_ALL=C $(MAKE) -f mk.mk install
11 uninstall:
12 @$(_prestop) && LC_ALL=C $(MAKE) -f mk.mk uninstall
13 clean:
14 @$(_prestop) && LC_ALL=C $(MAKE) -f mk.mk clean
15 distclean:
16 @$(_prestop) && LC_ALL=C $(MAKE) -f mk.mk distclean
18 config:
19 @$(_prego)
20 build:
21 @$(_prestop) && LC_ALL=C $(MAKE) -f mk.mk all
22 test:
23 @$(_prestop) && LC_ALL=C $(MAKE) -f mk.mk test
24 packager-install:
25 @$(_prestop) && LC_ALL=C $(MAKE) -f mk.mk install
27 devel:
28 @WANT_GSSAPI=1 WANT_DEBUG=1 WANT_DEVEL=1;\
29 export WANT_GSSAPI WANT_DEBUG WANT_DEVEL;\
30 $(_prego) && LC_ALL=C $(MAKE) -f mk.mk _update-version &&\
31 LC_ALL=C $(MAKE) -f mk.mk all
32 odevel:
33 @WANT_GSSAPI=1 WANT_DEVEL=1;\
34 export WANT_GSSAPI WANT_DEVEL;\
35 $(_prego) && LC_ALL=C $(MAKE) -f mk.mk _update-version &&\
36 LC_ALL=C $(MAKE) -f mk.mk all
38 _prego = $(SHELL) ./mk-conf.sh
39 _prestop = if [ -f ./mk.mk ]; then :; else \
40 echo 'Program not configured, nothing to do';\
41 echo 'The following targets will work: install, all, config';\
42 exit 1;\
45 # This is pretty specific
46 _update-release:
47 : $${UAGENT:=s-nail};\
48 : $${UUAGENT:=S-nail};\
49 : $${UPLOAD:=sdaoden@frs.sourceforge.net:/home/frs/project/s-nail};\
50 : $${ACCOUNT:=sn_sf};\
51 DATE_MAN="`LC_ALL=C date -u +'%b %d, %Y'`";\
52 DATE_ISO="`date -u +%Y-%m-%d`";\
53 if [ "`git rev-parse --verify HEAD`" != \
54 "`git rev-parse --verify master`" ]; then \
55 echo >&2 'Not on the [master] branch';\
56 exit 1;\
57 fi;\
58 if [ "`git status --porcelain --ignored |\
59 awk 'BEGIN{no=0}{++no}END{print no}'`" -ne 0 ]; then\
60 echo >&2 'Directory not clean, see git status --ignored';\
61 exit 2;\
62 fi;\
63 echo 'Name of release tag:';\
64 read REL;\
65 echo "Is $${UAGENT} <v$${REL}> correct? ENTER continues";\
66 read i;\
67 FREL=`echo $${REL} | sed -e 's/\./_/g'` &&\
68 printf > ./version.h "#define VERSION \"v$${REL}\"\n" &&\
69 < nail.1 sed -E \
70 -e "/^\.\\\\\" $${UUAGENT}\(1\):/ {" \
71 -e "s/^.*$$/.\\\\\" $${UUAGENT}(1): v$${REL} \/ $${DATE_ISO}/" \
72 -e b \
73 -e '}' \
74 -e '/^\.Dd / {' \
75 -e "s/^.*$$/.Dd $${DATE_MAN}/" \
76 -e b \
77 -e '}' \
78 -e '/^\.ds VV / {' \
79 -e "s/^.*$$/.ds VV \\\\\\\\%v$${REL}/" \
80 -e b \
81 -e '}' -e n > nail.1x &&\
82 mv -f nail.1x nail.1 &&\
83 < nail.rc sed -E \
84 -e "/^# $${UUAGENT}\(1\):/ {" \
85 -e "s/^.*$$/# $${UUAGENT}(1): v$${REL} \/ $${DATE_ISO}/" \
86 -e b \
87 -e '}' -e n > nail.rcx &&\
88 mv -f nail.rcx nail.rc &&\
89 git add version.h nail.1 nail.rc &&\
90 git commit -m "Bump $${UUAGENT} v$${REL}" &&\
91 git tag -f "v$${REL}" &&\
92 git update-ref refs/heads/next master &&\
93 git checkout timeline &&\
94 git rm -rf '*' &&\
95 git archive --format=tar.gz "v$${REL}" | tar -x -z -f - &&\
96 git add --all &&\
97 git commit -m "$${UAGENT} v$${REL}, $${DATE_ISO}" &&\
98 git checkout master &&\
99 git log --no-walk --decorate --oneline --branches --remotes &&\
100 git branch &&\
101 echo "Push git(1) repo? ENTER continues";\
102 read i;\
103 git push &&\
104 git archive --format=tar.gz --prefix="$${UAGENT}-$${REL}/" \
105 -o "$${TMPDIR}/$${UAGENT}-$${FREL}.tar.gz" "v$${REL}" &&\
106 cd "$${TMPDIR}" &&\
107 tar -x -z -f "$${UAGENT}-$${FREL}.tar.gz" &&\
108 rm -f "$${UAGENT}-$${FREL}.tar.gz" &&\
109 tar -c -f "$${UAGENT}-$${FREL}.tar" "$${UAGENT}-$${REL}" &&\
110 < "$${UAGENT}-$${FREL}.tar" gzip > "$${UAGENT}-$${FREL}.tar.gz" &&\
111 < "$${UAGENT}-$${FREL}.tar" xz -e -C sha256 > \
112 "$${UAGENT}-$${FREL}.tar.xz" &&\
113 rm -f "$${UAGENT}-$${FREL}.tar" &&\
114 openssl md5 "$${UAGENT}-$${FREL}.tar.gz" > \
115 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
116 openssl sha1 "$${UAGENT}-$${FREL}.tar.gz" >> \
117 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
118 openssl sha256 "$${UAGENT}-$${FREL}.tar.gz" >> \
119 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
120 openssl md5 "$${UAGENT}-$${FREL}.tar.xz" >> \
121 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
122 openssl sha1 "$${UAGENT}-$${FREL}.tar.xz" >> \
123 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
124 openssl sha256 "$${UAGENT}-$${FREL}.tar.xz" >> \
125 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
126 ( echo "-put $${UAGENT}-$${FREL}.tar.gz";\
127 echo "-put $${UAGENT}-$${FREL}.tar.xz" ) | \
128 sftp -b - $${UPLOAD} &&\
129 echo 'All seems fine';\
130 echo 'Really send announcement mail? ENTER continues';\
131 read i;\
132 cd "$${UAGENT}-$${REL}" &&\
133 make CONFIG=MAXIMAL &&\
134 ./$${UAGENT} -A $${ACCOUNT} \
135 -s "[ANNOUNCE] of $${UUAGENT} v$${REL}" nail-announce &&\
136 cd .. &&\
137 echo "Really remove $${UAGENT}-$${REL} build dir? ENTER continues";\
138 read i;\
139 rm -rf "$${UAGENT}-$${REL}" &&\
140 echo 'Uff.'
142 # vim:set fenc=utf-8 filetype=make: