colour_table_create(): auto-enable $TERMs named "color" (Gavin Troy)
[s-mailx.git] / mk-mk.in
bloba794f6b8aa54fb289ea8b26295eff0b93d3e4d1f
1 #@ `mk-mk.in' -- mk.mk template, completed by mk-conf.sh
2 #@ Please see `INSTALL' and `conf.rc' instead.
4 OBJ = $(OBJ_SRC:.c=.o)
5 .SUFFIXES: .o .c .y
6 .c.o:
7         @if [ -z "$(VERBOSE)" ]; then echo '  CC $(<)';\
8         else echo '  $$ $(CC) $(CFLAGS) $(INCLUDES) -c $(<)';\
9         fi;\
10         $(CC) $(CFLAGS) $(INCLUDES) -c $(<)
11 .c .y: ;
13 all: _all_echoes $(UAGENT)
14 _all_echoes:
15         @echo 'Building..';\
16         if [ -z "$(VERBOSE)" ]; then \
17                 echo '. CC      : $(CC)';\
18                 echo '. CFLAGS  : $(CFLAGS)';\
19                 echo '. INCLUDES: $(INCLUDES)';\
20                 [ -n "$(LDFLAGS)" ] && echo '. LDFLAGS : $(LDFLAGS)';\
21                 echo '. LIBS    : $(LIBS)';\
22         fi
23 $(UAGENT): $(OBJ)
24         @if [ -z "$(VERBOSE)" ]; then echo '  LINK $(@)';\
25         else echo '  $$ $(CC) $(LDFLAGS) -o $(@) $(OBJ) $(LIBS)';\
26         fi;\
27         $(CC) $(LDFLAGS) -o $(@) $(OBJ) $(LIBS)
29 $(OBJ): config.h nail.h nailfuns.h $(OBJ_DEP)
30 config.o acmava.o: okeys.h
31 config.o auxlily.o imap.o pop3.o smtp.o: rfc1321.h
32 config.o imap.o: imap_gssapi.h
33 config.o lex.o: cmd_tab.h
34 config.o main.o: version.h
35 config.o mime.o: mime_types.h
36 config.o smtp.o: smtp_gssapi.h
38 mime_types.h: mime.types
39         @echo '  GEN $(@)';\
40         < ./mime.types > $(@) $(SED) -e '/^#/d; /^$$/d; s/^/    "/; s/$$/",/'
42 test:
43         @echo 'Running test, please wait';\
44         $(SHELL) ./cc-test.sh --check-only ./$(UAGENT)
46 mkman.1: nail.1 mk.mk
47         @[ -n "$(VERBOSE)" ] && echo '  GEN $(UAGENT) manual ($(@))';\
48         _VERSION=`< version.h \
49                 $(SED) -e 's/^\#define VERSION "\\(.\\{1,\\}\\)"$$/\\1/'` \
50         _SYSCONFRC="$(SYSCONFRC)" _UAGENT="$(UAGENT)" \
51         < ./nail.1 > $(@) $(AWK) 'BEGIN {written = 0}\
52         /.\"--MKMAN-START--/, /.\"--MKMAN-END--/ {\
53                 if (written == 1)\
54                         next;\
55                 written = 1;\
56                 OFS = "";\
57                 un = toupper(ENVIRON["_UAGENT"]);\
58                 ln = tolower(un);\
59                 cn = toupper(substr(ln, 1, 1)) substr(ln, 2);\
60                 print ".ds UU \\\\%", un;\
61                 print ".ds UA \\\\%", cn;\
62                 printf ".ds UV \\\\%%%s [%s]\n", cn, ENVIRON["_VERSION"];\
63                 print ".ds ua \\\\%", ln;\
64                 print ".ds UR \\\\%", ENVIRON["_SYSCONFRC"];\
65                 OFS = " ";\
66                 next\
67         }\
68         {print}\
69         '
71 mkrc.rc: nail.rc mk.mk
72         @[ -n "$(VERBOSE)" ] &&\
73                 echo '  GEN $(UAGENT) default resource file ($(@))';\
74         _SYSCONFRC="$(SYSCONFRC)" _UAGENT="$(UAGENT)" \
75         < ./nail.rc > $(@) $(AWK) 'BEGIN {written = 0}\
76         /^#--MKRC-START--/, /^#--MKRC-END--/ {\
77                 if (written == 1)\
78                         next;\
79                 written = 1;\
80                 OFS = "";\
81                 ln = tolower(ENVIRON["_UAGENT"]);\
82                 cn = toupper(substr(ln, 1, 1)) substr(ln, 2);\
83                 print "# ", ENVIRON["_SYSCONFRC"];\
84                 print "# Configuration file for ", cn, "(1)";\
85                 OFS = " ";\
86                 next\
87         }\
88         /^# vim:/ {next}\
89         {print}\
90         '
92 _install_echoes:
93         @echo 'Installing..'
94 install: _install_echoes mk.mk mkman.1 mkrc.rc
95         @__mkdir() {\
96                 _dir=$${1};\
97                 if [ ! -d "$${_dir}" ]; then \
98                         if [ -n "$(VERBOSE)" ]; then \
99                                 echo "  \$$ $(MKDIR) -m 0755 -p '$${_dir}'";\
100                         fi;\
101                         $(MKDIR) -m 0755 -p "$${_dir}";\
102                 fi;\
103         };\
104         __copyfile() {\
105                 _mode=$${1} _src=$${2} _dst=$${3};\
106                 if [ -n "$(VERBOSE)" ]; then \
107                         echo "  \$$ $(CP) -f '$${_src}' '$${_dst}'";\
108                         echo "  \$$ $(CHMOD) $${_mode} '$${_dst}'";\
109                 fi;\
110                 $(CP) -f "$${_src}" "$${_dst}";\
111                 $(CHMOD) $${_mode} "$${_dst}";\
112         };\
113         __stripfile() {\
114                 _file=$${1};\
115                 if [ "$(WANT_DEBUG)" != 0 ]; then \
116                         if [ -n "$(VERBOSE)" ]; then \
117                                 echo "  \$$ :WANT_DEBUG=1, not strip(1)ing";\
118                         fi;\
119                 elif [ -n "$(HAVE_STRIP)" ]; then \
120                         if [ -n "$(VERBOSE)" ]; then \
121                                 echo "  \$$ $(STRIP) '$${_file}'";\
122                         fi;\
123                         $(STRIP) "$${_file}";\
124                 fi;\
125         };\
126         if [ -n "$(DESTDIR)" ]; then __mkdir "$(DESTDIR)"; fi;\
127         __mkdir "$(DESTDIR)$(BINDIR)";\
128         __copyfile 0755 "$(UAGENT)" "$(DESTDIR)$(BINDIR)/$(UAGENT)";\
129         __stripfile "$(DESTDIR)$(BINDIR)/$(UAGENT)";\
130         __mkdir "$(DESTDIR)$(MANDIR)/man1";\
131         __copyfile 0644 ./mkman.1 "$(DESTDIR)$(MANDIR)/man1/$(UAGENT).1";\
132         __mkdir "$(DESTDIR)$(SYSCONFDIR)";\
133         if [ ! -f "$(DESTDIR)$(SYSCONFRC)" ]; then \
134                 __copyfile 0644 ./mkrc.rc "$(DESTDIR)$(SYSCONFRC)";\
135         fi
137 uninstall:
138         @echo 'Uninstalling..';\
139         [ -n "$(VERBOSE)" ] &&\
140                 echo '  $$ $(RM) -f "$(DESTDIR)$(BINDIR)/$(UAGENT)" \
141                         "$(DESTDIR)$(MANDIR)/man1/$(UAGENT).1"';\
142         $(RM) -f "$(DESTDIR)$(BINDIR)/$(UAGENT)" \
143                 "$(DESTDIR)$(MANDIR)/man1/$(UAGENT).1";\
144         if [ -n "$(VERBOSE)" ] && [ -f "$(DESTDIR)$(SYSCONFRC)" ]; then \
145                 echo '  NOTE: not removing "$(DESTDIR)$(SYSCONFRC)"';\
146         fi
148 clean:
149         @echo 'Cleaning up..';\
150         [ -n "$(VERBOSE)" ] &&\
151                 echo '  $$ $(RM) -f $(OBJ) $(UAGENT) ./mime_types.h ./mkman.1 \
152                         ./mkrc.rc';\
153         $(RM) -f $(OBJ) $(UAGENT) ./mime_types.h ./mkman.1 ./mkrc.rc
155 distclean: clean
156         @echo 'Deconfiguring..';\
157         [ -n "$(VERBOSE)" ] && echo '  $$ $(RM) -f ./config.* ./*.mk';\
158         $(RM) -f ./config.* ./*.mk
160 _update-version:
161         @if [ -z "$(VERSION)" ]; then \
162                 eval VERSION="`(git describe --tags) 2>/dev/null`";\
163                 if [ -z "$${VERSION}" ]; then \
164                         VERSION="`$(SED) -e 's/[^\"]*\"\([^\"]\{1,\}\)\"/\1/' \
165                                 version.h`";\
166                         echo "$${VERSION}" | $(GREP) -q -F dirty ||\
167                                 VERSION="$${VERSION}-dirty";\
168                 fi;\
169         fi;\
170         trap "$(RM) ./version.tmp" 0 1 2 15;\
171         printf > ./version.tmp "#define VERSION \"$${VERSION}\"\n";\
172         $(CMP) ./version.tmp ./version.h >/dev/null 2>&1 && exit;\
173         mv ./version.tmp ./version.h;\
174         trap - 0 1 2 15
176 _update-release:
177         if [ "`git rev-parse --verify HEAD`" != \
178                         "`git rev-parse --verify master`" ]; then \
179                 echo >&2 'Not on the [master] branch';\
180                 exit 1;\
181         fi;\
182         echo 'Name of release tag:';\
183         read REL;\
184         echo "Is $(UAGENT) <v$${REL}> correct?  ENTER continues";\
185         read i;\
186         FREL=`echo $${REL} | $(SED) -e 's/\./_/g'` &&\
187         $(MAKE) -f ./mk.mk _update-version &&\
188         git add version.h &&\
189         git commit -m "Bump $(UAGENT) v$${REL}" &&\
190         git tag -f "v$${REL}" &&\
191         $(MAKE) -f ./mk.mk _update-version &&\
192         git add version.h && git commit --amend &&\
193         git tag -f "v$${REL}" &&\
194         git update-ref refs/heads/next master &&\
195                 git checkout timeline &&\
196                 git cherry-pick master &&\
197                 git checkout master &&\
198         git log --no-walk --decorate --oneline --branches --remotes &&\
199         git branch &&\
200         echo "Push git(1) repo?  ENTER continues";\
201         read i;\
202         git push &&\
203         git archive --prefix="$(UAGENT)-$${REL}/" \
204                 -o "$${TMPDIR}/$(UAGENT)-$${FREL}.tar.gz" HEAD &&\
205         cd "$${TMPDIR}" &&\
206         tar -x -z -f "$(UAGENT)-$${FREL}.tar.gz" &&\
207         $(RM) -f "$(UAGENT)-$${FREL}.tar.gz" &&\
208         tar -c -f "$(UAGENT)-$${FREL}.tar" "$(UAGENT)-$${REL}" &&\
209         < "$(UAGENT)-$${FREL}.tar" gzip > "$(UAGENT)-$${FREL}.tar.gz" &&\
210         < "$(UAGENT)-$${FREL}.tar" xz -e -C sha256 > \
211                 "$(UAGENT)-$${FREL}.tar.xz" &&\
212         $(RM) -f "$(UAGENT)-$${FREL}.tar" &&\
213         openssl md5 "$(UAGENT)-$${FREL}.tar.gz" > \
214                 "$(UAGENT)-$${FREL}.cksum" 2>&1 &&\
215         openssl sha1 "$(UAGENT)-$${FREL}.tar.gz" >> \
216                 "$(UAGENT)-$${FREL}.cksum" 2>&1 &&\
217         openssl sha256 "$(UAGENT)-$${FREL}.tar.gz" >> \
218                 "$(UAGENT)-$${FREL}.cksum" 2>&1 &&\
219         openssl md5 "$(UAGENT)-$${FREL}.tar.xz" >> \
220                 "$(UAGENT)-$${FREL}.cksum" 2>&1 &&\
221         openssl sha1 "$(UAGENT)-$${FREL}.tar.xz" >> \
222                 "$(UAGENT)-$${FREL}.cksum" 2>&1 &&\
223         openssl sha256 "$(UAGENT)-$${FREL}.tar.xz" >> \
224                 "$(UAGENT)-$${FREL}.cksum" 2>&1 &&\
225         ( echo "-put $(UAGENT)-$${FREL}.tar.gz";\
226           echo "-put $(UAGENT)-$${FREL}.tar.xz" ) | \
227         sftp -b - sdaoden@frs.sourceforge.net:/home/frs/project/s-nail &&\
228         echo 'All seems fine';\
229         echo 'Really send announcement mail?  ENTER continues';\
230         read i;\
231         cd "$(UAGENT)-$${REL}" &&\
232         make devel &&\
233         LC_ALL=${LC_XX} ./s-nail -A sn_sf \
234                 -s "[ANNOUNCE] of S-nail v$${REL}" nail-announce &&\
235         cd .. &&\
236         echo "Really remove $(UAGENT)-$${REL} build dir?  ENTER continues";\
237         read i;\
238         $(RM) -rf "$(UAGENT)-$${REL}" &&\
239         echo 'Uff.'
241 # vim:set fenc=utf-8 ft=make: