1 #@ Makefile for S-nail.
2 #@ See the file INSTALL if you need help.
9 SYSCONFDIR
= $(PREFIX
)/etc
11 # Prepended to all paths at installation time (for e.g. package building)
13 # (For those who want to install S-nail(1) as nail(1), use an empty *SID*)
17 SENDMAIL
= /usr
/sbin
/sendmail
20 INSTALL
= /usr
/bin
/install
22 #CFLAGS = -std=c89 -O1
23 #WARN = -g -Wall -Wextra -pedantic -Wbad-function-cast -Wcast-align \
24 # -Winit-self -fstrict-overflow -Wstrict-overflow=5
25 # Warnings that are not handled very well (yet)
26 # -Wshadow -Wcast-qual -Wwrite-strings
31 # To ease the life of forkers and packagers one may even adjust the "nail"
32 # of nail(1). Note that $(SID)$(NAIL) must be longer than two characters.
33 # There you go. Two lines for a completely clean fork.
35 SYSCONFRC
= $(SYSCONFDIR
)/$(SID
)$(NAIL
).rc
37 # Binaries builtin paths
38 PATHDEFS
= -DSYSCONFRC
='"$(SYSCONFRC)"' -DMAILSPOOL
='"$(MAILSPOOL)"' \
39 -DSENDMAIL
='"$(SENDMAIL)"'
41 OBJ
= aux.o base64.o cache.o cmd1.o cmd2.o cmd3.o cmdtab.o collect.o \
42 dotlock.o edit.o fio.o getname.o getopt.o head.o hmac.o \
43 imap.o imap_search.o junk.o
lex.o list.o lzw.o \
44 macro.o maildir.o main.o md5.o mime.o names.o nss.o \
45 openssl.o pop3.o popen.o quit.o \
46 send.o sendout.o smtp.o ssl.o strings.o temp.o thread.o tty.o \
52 $(CC
) $(CFLAGS
) $(WARN
) $(PATHDEFS
) `cat INCS` -c
$<
59 $(CC
) $(LDFLAGS
) $(OBJ
) `cat LIBS` -o
$@
61 $(OBJ
): config.h def.h extern.h glob.h rcv.h
63 md5.o imap.o hmac.o smtp.o aux.o pop3.o junk.o
: md5.h
66 config.h
: user.conf makeconfig Makefile
70 _SYSCONFRC
="$(SYSCONFRC)" _NAIL
="$(SID)$(NAIL)" \
71 < nail
.1 > $@ awk
'BEGIN {written = 0} \
72 /.\"--MKMAN-START--/, /.\"--MKMAN-END--/ { \
77 unail = toupper(ENVIRON["_NAIL"]); \
78 lnail = tolower(unail); \
79 cnail = toupper(substr(lnail, 1, 1)) substr(lnail, 2); \
80 print ".ds UU ", unail; \
81 print ".ds uu ", cnail; \
82 print ".ds UA \\\\fI", cnail, "\\\\fR"; \
83 print ".ds ua \\\\fI", lnail, "\\\\fR"; \
84 print ".ds ba \\\\fB", lnail, "\\\\fR"; \
85 print ".ds UR ", ENVIRON["_SYSCONFRC"]; \
93 _SYSCONFRC
="$(SYSCONFRC)" _NAIL
="$(SID)$(NAIL)" \
94 < nail.rc
> $@ awk
'BEGIN {written = 0} \
95 /#--MKRC-START--/, /#--MKRC-END--/ { \
100 lnail = tolower(ENVIRON["_NAIL"]); \
101 cnail = toupper(substr(lnail, 1, 1)) substr(lnail, 2); \
102 print "# ", ENVIRON["_SYSCONFRC"]; \
103 print "# Configuration file for ", cnail, "(1), a fork of"; \
110 install: all mkman
.1 mkrc.rc
111 test -d
$(DESTDIR
)$(BINDIR
) || mkdir
-p
$(DESTDIR
)$(BINDIR
)
112 $(INSTALL
) -c
$(SID
)$(NAIL
) $(DESTDIR
)$(BINDIR
)/$(SID
)$(NAIL
)
113 $(STRIP
) $(DESTDIR
)$(BINDIR
)/$(SID
)$(NAIL
)
114 test -d
$(DESTDIR
)$(MANDIR
)/man1 || mkdir
-p
$(DESTDIR
)$(MANDIR
)/man1
115 $(INSTALL
) -c
-m
644 mkman
.1 $(DESTDIR
)$(MANDIR
)/man1
/$(SID
)$(NAIL
).1
116 test -d
$(DESTDIR
)$(SYSCONFDIR
) || mkdir
-p
$(DESTDIR
)$(SYSCONFDIR
)
117 test -f
$(DESTDIR
)$(SYSCONFRC
) || \
118 $(INSTALL
) -c
-m
644 mkrc.rc
$(DESTDIR
)$(SYSCONFRC
)
121 rm -f
$(DESTDIR
)$(BINDIR
)/$(SID
)$(NAIL
) \
122 $(DESTDIR
)$(MANDIR
)/man1
/$(SID
)$(NAIL
).1
125 rm -f
$(OBJ
) $(SID
)$(NAIL
) mkman
.1 mkrc.rc
*~ core log
128 rm -f config.h config.log LIBS INCS
131 [ -z
"$${VERSION}" ] && eval VERSION
="`git describe --dirty --tags`"; \
133 "char const *const uagent = \"$(SID)$(NAIL)\", \
134 *const version = \"$${VERSION:-huih buh}\";"