Fix QP encoding canary violation (Peter Hofmann)..
[s-mailx.git] / makefile
blob4c6d0ab1838c82f1f407a5e044d9d8dfa2a0bd28
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 > nail.1x awk '\
70 /^\.\\" '"$${UUAGENT}"'\(1\):/ {\
71 print ".\\\" '"$${UUAGENT}"'(1): v'"$${REL}"'" \
72 " / '"$${DATE_ISO}"'";\
73 next;\
75 /^\.Dd / {\
76 print ".Dd '"$${DATE_MAN}"'";\
77 next;\
79 /^\.ds VV / {\
80 print ".ds VV \\\\%v'"$${REL}"'";\
81 next;\
83 {print}\
84 ' &&\
85 mv -f nail.1x nail.1 &&\
86 < nail.rc > nail.rcx awk '\
87 /^# '$${UUAGENT}'\(1\):/ {\
88 print "# '"$${UUAGENT}"'(1): v'"$${REL}"' / '"$${DATE_ISO}"'";\
89 next;\
91 {print}\
92 ' && \
93 mv -f nail.rcx nail.rc &&\
94 git add version.h nail.1 nail.rc &&\
95 git commit -m "Bump $${UUAGENT} v$${REL}" &&\
96 git tag -f "v$${REL}" &&\
97 git update-ref refs/heads/next master &&\
98 git checkout timeline &&\
99 git rm -rf '*' &&\
100 git archive --format=tar.gz "v$${REL}" | tar -x -z -f - &&\
101 git add --all &&\
102 git commit -m "$${UAGENT} v$${REL}, $${DATE_ISO}" &&\
103 git checkout master &&\
104 git log --no-walk --decorate --oneline --branches --remotes &&\
105 git branch &&\
106 echo "Push git(1) repo? ENTER continues";\
107 read i;\
108 git push &&\
109 git archive --format=tar.gz --prefix="$${UAGENT}-$${REL}/" \
110 -o "$${TMPDIR}/$${UAGENT}-$${FREL}.tar.gz" "v$${REL}" &&\
111 cd "$${TMPDIR}" &&\
112 tar -x -z -f "$${UAGENT}-$${FREL}.tar.gz" &&\
113 rm -f "$${UAGENT}-$${FREL}.tar.gz" &&\
114 tar -c -f "$${UAGENT}-$${FREL}.tar" "$${UAGENT}-$${REL}" &&\
115 < "$${UAGENT}-$${FREL}.tar" gzip > "$${UAGENT}-$${FREL}.tar.gz" &&\
116 < "$${UAGENT}-$${FREL}.tar" xz -e -C sha256 > \
117 "$${UAGENT}-$${FREL}.tar.xz" &&\
118 rm -f "$${UAGENT}-$${FREL}.tar" &&\
119 openssl md5 "$${UAGENT}-$${FREL}.tar.gz" > \
120 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
121 openssl sha1 "$${UAGENT}-$${FREL}.tar.gz" >> \
122 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
123 openssl sha256 "$${UAGENT}-$${FREL}.tar.gz" >> \
124 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
125 openssl md5 "$${UAGENT}-$${FREL}.tar.xz" >> \
126 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
127 openssl sha1 "$${UAGENT}-$${FREL}.tar.xz" >> \
128 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
129 openssl sha256 "$${UAGENT}-$${FREL}.tar.xz" >> \
130 "$${UAGENT}-$${FREL}.cksum" 2>&1 &&\
131 ( echo "-put $${UAGENT}-$${FREL}.tar.gz";\
132 echo "-put $${UAGENT}-$${FREL}.tar.xz" ) | \
133 sftp -b - $${UPLOAD} &&\
134 echo 'All seems fine';\
135 echo 'Really send announcement mail? ENTER continues';\
136 read i;\
137 cd "$${UAGENT}-$${REL}" &&\
138 make CONFIG=MAXIMAL &&\
139 ./$${UAGENT} -A $${ACCOUNT} \
140 -s "[ANNOUNCE] of $${UUAGENT} v$${REL}" nail-announce &&\
141 cd .. &&\
142 echo "Really remove $${UAGENT}-$${REL} build dir? ENTER continues";\
143 read i;\
144 rm -rf "$${UAGENT}-$${REL}" &&\
145 echo 'Uff.'
147 # s-mk-mode