makeconfig: small tweaks
[s-mailx.git] / Makefile
blob42887074d2af316ecc9ed51aa30361bb5b1b6193
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 =
23 #WARN = -W -Wall -Wextra -pedantic
24 #LDFLAGS =
26 ## -- >8 -- 8< -- ##
28 # To ease the life of forkers and packagers one may even adjust the "nail"
29 # of nail(1). Note that $(SID)$(NAIL) must be longer than two characters.
30 # There you go. Two lines for a completely clean fork.
31 NAIL = nail
32 SYSCONFRC = $(SYSCONFDIR)/$(SID)$(NAIL).rc
34 # Binaries builtin paths
35 PATHDEFS = -DSYSCONFRC='"$(SYSCONFRC)"' -DMAILSPOOL='"$(MAILSPOOL)"' \
36 -DSENDMAIL='"$(SENDMAIL)"'
38 OBJ = aux.o base64.o cache.o cmd1.o cmd2.o cmd3.o cmdtab.o collect.o \
39 dotlock.o edit.o fio.o getname.o getopt.o head.o hmac.o \
40 imap.o imap_search.o junk.o lex.o list.o lzw.o \
41 macro.o maildir.o main.o md5.o mime.o names.o nss.o \
42 openssl.o pop3.o popen.o quit.o \
43 send.o sendout.o smtp.o ssl.o strings.o temp.o thread.o tty.o \
44 v7.local.o vars.o \
45 version.o
47 .SUFFIXES: .o .c .y
48 .c.o:
49 $(CC) $(CFLAGS) $(WARN) $(PATHDEFS) `cat INCS` -c $<
51 .c .y: ;
53 all: $(SID)$(NAIL)
55 $(SID)$(NAIL): $(OBJ)
56 $(CC) $(LDFLAGS) $(OBJ) `cat LIBS` -o $@
58 $(OBJ): config.h def.h extern.h glob.h rcv.h
59 imap.o: imap_gssapi.c
60 md5.o imap.o hmac.o smtp.o aux.o pop3.o junk.o: md5.h
61 nss.o: nsserr.c
63 config.h: user.conf makeconfig Makefile
64 $(SHELL) ./makeconfig
66 mkman.1: nail.1
67 _SYSCONFRC="$(SYSCONFRC)" _NAIL="$(SID)$(NAIL)" \
68 < $< > $@ awk 'BEGIN {written = 0} \
69 /.\"--MKMAN-START--/, /.\"--MKMAN-END--/ { \
70 if (written == 1) \
71 next; \
72 written = 1; \
73 OFS = ""; \
74 unail = toupper(ENVIRON["_NAIL"]); \
75 lnail = tolower(unail); \
76 cnail = toupper(substr(lnail, 1, 1)) substr(lnail, 2); \
77 print ".ds UU ", unail; \
78 print ".ds uu ", cnail; \
79 print ".ds UA \\\\fI", cnail, "\\\\fR"; \
80 print ".ds ua \\\\fI", lnail, "\\\\fR"; \
81 print ".ds ba \\\\fB", lnail, "\\\\fR"; \
82 print ".ds UR ", ENVIRON["_SYSCONFRC"]; \
83 OFS = " "; \
84 next \
85 } \
86 {print} \
89 mkrc.rc: nail.rc
90 _SYSCONFRC="$(SYSCONFRC)" _NAIL="$(SID)$(NAIL)" \
91 < $< > $@ awk 'BEGIN {written = 0} \
92 /#--MKRC-START--/, /#--MKRC-END--/ { \
93 if (written == 1) \
94 next; \
95 written = 1; \
96 OFS = ""; \
97 lnail = tolower(ENVIRON["_NAIL"]); \
98 cnail = toupper(substr(lnail, 1, 1)) substr(lnail, 2); \
99 print "# ", ENVIRON["_SYSCONFRC"]; \
100 print "# Configuration file for ", cnail, "(1), a fork of"; \
101 OFS = " "; \
102 next \
104 {print} \
107 install: all mkman.1 mkrc.rc
108 test -d $(DESTDIR)$(BINDIR) || mkdir -p $(DESTDIR)$(BINDIR)
109 $(INSTALL) -c $(SID)$(NAIL) $(DESTDIR)$(BINDIR)/$(SID)$(NAIL)
110 $(STRIP) $(DESTDIR)$(BINDIR)/$(SID)$(NAIL)
111 test -d $(DESTDIR)$(MANDIR)/man1 || mkdir -p $(DESTDIR)$(MANDIR)/man1
112 $(INSTALL) -c -m 644 mkman.1 $(DESTDIR)$(MANDIR)/man1/$(SID)$(NAIL).1
113 test -d $(DESTDIR)$(SYSCONFDIR) || mkdir -p $(DESTDIR)$(SYSCONFDIR)
114 test -f $(DESTDIR)$(SYSCONFRC) || \
115 $(INSTALL) -c -m 644 mkrc.rc $(DESTDIR)$(SYSCONFRC)
117 uninstall:
118 rm -f $(DESTDIR)$(BINDIR)/$(SID)$(NAIL) \
119 $(DESTDIR)$(MANDIR)/man1/$(SID)$(NAIL).1
121 clean:
122 rm -f $(OBJ) $(SID)$(NAIL) mkman.1 mkrc.rc *~ core log
124 distclean: clean
125 rm -f config.h config.log LIBS INCS
127 new-version:
128 [ -z "$${VERSION}" ] && eval VERSION="`git describe --dirty --tags`"; \
129 echo > version.c \
130 "const char *const uagent = \"$(SID)$(NAIL)\", \
131 *const version = \"$${VERSION:-huih buh}\";"