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
8 @LC_ALL
=C
$(MAKE
) -f mk.mk
all
10 @LC_ALL
=C
$(MAKE
) -f mk.mk
install
12 @
$(_prestop
) && LC_ALL
=C
$(MAKE
) -f mk.mk
uninstall
14 @
$(_prestop
) && LC_ALL
=C
$(MAKE
) -f mk.mk
clean
16 @
$(_prestop
) && LC_ALL
=C
$(MAKE
) -f mk.mk
distclean
21 @
$(_prestop
) && LC_ALL
=C
$(MAKE
) -f mk.mk
all
23 @
$(_prestop
) && LC_ALL
=C
$(MAKE
) -f mk.mk
test
25 @
$(_prestop
) && LC_ALL
=C
$(MAKE
) -f mk.mk
install
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
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';\
45 # This is pretty specific
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';\
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';\
63 echo
'Name of release tag:';\
65 echo
"Is $${UAGENT} <v$${REL}> correct? ENTER continues";\
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}"'";\
76 print ".Dd '"$${DATE_MAN}"'";\
80 print ".ds VV \\\\%v'"$${REL}"'";\
85 mv
-f nail
.1x nail
.1 &&\
86 < nail.rc
> nail.rcx awk
'\
87 /^# '$${UUAGENT}'\(1\):/ {\
88 print "# '"$${UUAGENT}"'(1): v'"$${REL}"' / '"$${DATE_ISO}"'";\
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
&&\
100 git archive
--format
=tar.gz
"v$${REL}" |
tar -x
-z
-f
- &&\
102 git commit
-m
"$${UAGENT} v$${REL}, $${DATE_ISO}" &&\
103 git checkout master
&&\
104 git log
--no-walk
--decorate
--oneline
--branches
--remotes
&&\
106 echo
"Push git(1) repo? ENTER continues";\
109 git archive
--format
=tar.gz
--prefix="$${UAGENT}-$${REL}/" \
110 -o
"$${TMPDIR}/$${UAGENT}-$${FREL}.tar.gz" "v$${REL}" &&\
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';\
137 cd
"$${UAGENT}-$${REL}" &&\
138 make CONFIG
=MAXIMAL
&&\
139 .
/$${UAGENT} -A
$${ACCOUNT} \
140 -s
"[ANNOUNCE] of $${UUAGENT} v$${REL}" nail-announce
&&\
142 echo
"Really remove $${UAGENT}-$${REL} build dir? ENTER continues";\
144 rm -rf
"$${UAGENT}-$${REL}" &&\