load(): handle NULL arg ourself, do not pass to Fopen()
[s-mailx.git] / Makefile
blob7b120b1418974099da2a63fef6c586c6f75dcd71
1 #@ Makefile for S-nail.
2 #@ See the file INSTALL if you need help.
4 # General prefix
5 PREFIX = /usr/local
7 BINDIR = $(PREFIX)/bin
8 MANDIR = $(PREFIX)/man
9 SYSCONFDIR = $(PREFIX)/etc
11 # Prepended to all paths at installation time (for e.g. package building)
12 DESTDIR =
13 # (For those who want to install S-nail(1) as nail(1), use an empty *SID*)
14 SID = s-
16 MAILSPOOL = /var/mail
17 SENDMAIL = /usr/sbin/sendmail
18 SHELL = /bin/sh
19 STRIP = strip
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
27 #LDFLAGS =
29 ## -- >8 -- 8< -- ##
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.
34 NAIL = nail
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 \
47 v7.local.o vars.o \
48 version.o
50 .SUFFIXES: .o .c .y
51 .c.o:
52 $(CC) $(CFLAGS) $(WARN) $(PATHDEFS) `cat INCS` -c $<
54 .c .y: ;
56 all: $(SID)$(NAIL)
58 $(SID)$(NAIL): $(OBJ)
59 $(CC) $(LDFLAGS) $(OBJ) `cat LIBS` -o $@
61 $(OBJ): config.h def.h extern.h glob.h rcv.h
62 imap.o: imap_gssapi.c
63 md5.o imap.o hmac.o smtp.o aux.o pop3.o junk.o: md5.h
64 nss.o: nsserr.c
66 config.h: user.conf makeconfig Makefile
67 $(SHELL) ./makeconfig
69 mkman.1: nail.1
70 _SYSCONFRC="$(SYSCONFRC)" _NAIL="$(SID)$(NAIL)" \
71 < nail.1 > $@ awk 'BEGIN {written = 0} \
72 /.\"--MKMAN-START--/, /.\"--MKMAN-END--/ { \
73 if (written == 1) \
74 next; \
75 written = 1; \
76 OFS = ""; \
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"]; \
86 OFS = " "; \
87 next \
88 } \
89 {print} \
92 mkrc.rc: nail.rc
93 _SYSCONFRC="$(SYSCONFRC)" _NAIL="$(SID)$(NAIL)" \
94 < nail.rc > $@ awk 'BEGIN {written = 0} \
95 /#--MKRC-START--/, /#--MKRC-END--/ { \
96 if (written == 1) \
97 next; \
98 written = 1; \
99 OFS = ""; \
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"; \
104 OFS = " "; \
105 next \
107 {print} \
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)
120 uninstall:
121 rm -f $(DESTDIR)$(BINDIR)/$(SID)$(NAIL) \
122 $(DESTDIR)$(MANDIR)/man1/$(SID)$(NAIL).1
124 clean:
125 rm -f $(OBJ) $(SID)$(NAIL) mkman.1 mkrc.rc *~ core log
127 distclean: clean
128 rm -f config.h config.log LIBS INCS
130 update-version:
131 [ -z "$${VERSION}" ] && eval VERSION="`git describe --dirty --tags`"; \
132 echo > version.c \
133 "char const *const uagent = \"$(SID)$(NAIL)\", \
134 *const version = \"$${VERSION:-huih buh}\";"