1#
2# Makefile for mailx
3#
4
5#
6# See the file INSTALL if you need help.
7#
8
9PREFIX		= /usr/local
10BINDIR		= $(PREFIX)/bin
11MANDIR		= $(PREFIX)/share/man
12SYSCONFDIR	= /etc
13
14MAILRC		= $(SYSCONFDIR)/nail.rc
15MAILSPOOL	= /var/mail
16SENDMAIL	= /usr/lib/sendmail
17
18DESTDIR		=
19
20UCBINSTALL	= /usr/ucb/install
21
22# Define compiler, preprocessor, and linker flags here.
23# Note that some Linux/glibc versions need -D_GNU_SOURCE in CPPFLAGS, or
24# wcwidth() will not be available and multibyte characters will not be
25# displayed correctly.
26#CFLAGS		=
27#CPPFLAGS	=
28#LDFLAGS		=
29#WARN		= -Wall -Wno-parentheses -Werror
30
31# Some RedHat versions need INCLUDES = -I/usr/kerberos/include to compile
32# with OpenSSL, or to compile with GSSAPI authentication included. In the
33# latter case, they also need LDFLAGS = -L/usr/kerberos/lib.
34#INCLUDES	= -I/usr/kerberos/include
35#LDFLAGS	= -L/usr/kerberos/lib
36
37# If you want to include SSL support using Mozilla NSS instead of OpenSSL,
38# set something like the following paths. (You might also need to set LDFLAGS).
39#MOZINC		= /usr/include/mozilla-seamonkey-1.0.5
40#INCLUDES	= -I$(MOZINC)/nspr -I$(MOZINC)/nss
41# These paths are suitable to activate NSS support on Solaris, provided that
42# the packages SUNWmoznss, SUNWmoznss-devel, SUNWmoznspr, and SUNWmoznspr-devel
43# are installed.
44#MOZINC		= /usr/sfw/include/mozilla
45#MOZLIB		= /usr/sfw/lib/mozilla
46#INCLUDES	= -I$(MOZINC)/nspr -I$(MOZINC)/nss
47#LDFLAGS	= -L$(MOZLIB) -R$(MOZLIB)
48
49SHELL		= /bin/sh
50
51# If you know that the IPv6 functions work on your machine, you can enable
52# them here.
53#IPv6		= -DHAVE_IPv6_FUNCS
54
55#
56# Binaries are stripped with this command after installation.
57#
58STRIP = strip
59
60###########################################################################
61###########################################################################
62# You should really know what you do if you change anything below this line
63###########################################################################
64###########################################################################
65
66FEATURES	= -DMAILRC='"$(MAILRC)"' -DMAILSPOOL='"$(MAILSPOOL)"' \
67			-DSENDMAIL='"$(SENDMAIL)"' $(IPv6)
68
69OBJ = aux.o base64.o cache.o cmd1.o cmd2.o cmd3.o cmdtab.o collect.o \
70	dotlock.o edit.o fio.o getname.o getopt.o head.o hmac.o \
71	imap.o imap_search.o junk.o lex.o list.o lzw.o \
72	macro.o maildir.o main.o md5.o mime.o names.o nss.o \
73	openssl.o pop3.o popen.o quit.o \
74	send.o sendout.o smtp.o ssl.o strings.o temp.o thread.o tty.o \
75	v7.local.o vars.o \
76	version.o
77
78.SUFFIXES: .o .c .x
79.c.o:
80	$(CC) $(CFLAGS) $(CPPFLAGS) $(FEATURES) $(INCLUDES) $(WARN) -c $<
81
82.c.x:
83	$(CC) $(CFLAGS) $(CPPFLAGS) $(FEATURES) $(INCLUDES) $(WARN) -E $< >$@
84
85.c:
86	$(CC) $(CFLAGS) $(CPPFLAGS) $(FEATURES) $(INCLUDES) $(WARN) \
87		$(LDFLAGS) $< `grep '^[^#]' LIBS` $(LIBS) -o $@
88
89all: mailx
90
91mailx: $(OBJ) LIBS
92	$(CC) $(LDFLAGS) $(OBJ) `grep '^[^#]' LIBS` $(LIBS) -o mailx
93
94$(OBJ): config.h def.h extern.h glob.h rcv.h
95imap.o: imap_gssapi.c
96md5.o imap.o hmac.o smtp.o aux.o pop3.o junk.o: md5.h
97nss.o: nsserr.c
98
99config.h LIBS: makeconfig
100	$(SHELL) ./makeconfig
101
102install: all
103	test -d $(DESTDIR)$(BINDIR) || mkdir -p $(DESTDIR)$(BINDIR)
104	$(UCBINSTALL) -c mailx $(DESTDIR)$(BINDIR)/mailx
105	$(STRIP) $(DESTDIR)$(BINDIR)/mailx
106	test -d $(DESTDIR)$(MANDIR)/man1 || mkdir -p $(DESTDIR)$(MANDIR)/man1
107	$(UCBINSTALL) -c -m 644 mailx.1 $(DESTDIR)$(MANDIR)/man1/mailx.1
108	test -d $(DESTDIR)$(SYSCONFDIR) || mkdir -p $(DESTDIR)$(SYSCONFDIR)
109	test -f $(DESTDIR)$(MAILRC) || \
110		$(UCBINSTALL) -c -m 644 nail.rc $(DESTDIR)$(MAILRC)
111
112clean:
113	rm -f $(OBJ) mailx *~ core log
114
115mrproper: clean
116	rm -f config.h config.log LIBS
117
118PKGROOT = /var/tmp/mailx
119PKGTEMP = /var/tmp
120PKGPROTO = pkgproto
121
122mailx.pkg: all
123	rm -rf $(PKGROOT)
124	mkdir -p $(PKGROOT)
125	$(MAKE) DESTDIR=$(PKGROOT) install
126	rm -f $(PKGPROTO)
127	echo 'i pkginfo' >$(PKGPROTO)
128	(cd $(PKGROOT) && find . -print | pkgproto) | >>$(PKGPROTO) sed 's:^\([df] [^ ]* [^ ]* [^ ]*\) .*:\1 root root:; s:^f\( [^ ]* etc/\):v \1:; s:^f\( [^ ]* var/\):v \1:; s:^\(s [^ ]* [^ ]*=\)\([^/]\):\1./\2:'
129	rm -rf $(PKGTEMP)/$@
130	pkgmk -a `uname -m` -d $(PKGTEMP) -r $(PKGROOT) -f $(PKGPROTO) $@
131	pkgtrans -o -s $(PKGTEMP) `pwd`/$@ $@
132	rm -rf $(PKGROOT) $(PKGPROTO) $(PKGTEMP)/$@
133