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" &&\
70 -e
"/^\.\\\\\" $${UUAGENT}\(1\):/ {" \
71 -e
"s/^.*$$/.\\\\\" $${UUAGENT}(1): v$${REL} \/ $${DATE_ISO}/" \
75 -e
"s/^.*$$/.Dd $${DATE_MAN}/" \
79 -e
"s/^.*$$/.ds VV \\\\\\\\%v$${REL}/" \
81 -e
'}' -e n
> nail
.1x
&&\
82 mv
-f nail
.1x nail
.1 &&\
84 -e
"/^# $${UUAGENT}\(1\):/ {" \
85 -e
"s/^.*$$/# $${UUAGENT}(1): v$${REL} \/ $${DATE_ISO}/" \
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
&&\
95 git archive
--format
=tar.gz
"v$${REL}" |
tar -x
-z
-f
- &&\
97 git commit
-m
"$${UAGENT} v$${REL}, $${DATE_ISO}" &&\
98 git checkout master
&&\
99 git log
--no-walk
--decorate
--oneline
--branches
--remotes
&&\
101 echo
"Push git(1) repo? ENTER continues";\
104 git archive
--format
=tar.gz
--prefix="$${UAGENT}-$${REL}/" \
105 -o
"$${TMPDIR}/$${UAGENT}-$${FREL}.tar.gz" "v$${REL}" &&\
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';\
132 cd
"$${UAGENT}-$${REL}" &&\
133 make CONFIG
=MAXIMAL
&&\
134 .
/$${UAGENT} -A
$${ACCOUNT} \
135 -s
"[ANNOUNCE] of $${UUAGENT} v$${REL}" nail-announce
&&\
137 echo
"Really remove $${UAGENT}-$${REL} build dir? ENTER continues";\
139 rm -rf
"$${UAGENT}-$${REL}" &&\