#
#  This Makefile is designed to work on the old "make" program.  It does
#  not use the obj subdirectory.  It also does not install documentation
#  automatically -- think of it as a quick start for sites that have the
#  old make program (I recommend that you get and port the new make if you
#  are going to be doing any signficant work on sendmail).
#
#	You may find you need to find versions of some routines
#	such as strcasecmp in order to link this on SunOS 4.0.3.
#
#	@(#)Makefile.SunOS.4.0.3	8.3 (Berkeley) 4/11/94
#

ifeq   "$(BUILD_CPU)" "i386"
CPU_DEFINES=-D_X86_ -D_M_IX86 
DLL_ENTRY=_CRT_INIT@12
MACHINE_DEFINE=-machine:iX86
endif

ifeq   "$(BUILD_CPU)" "MIPS"
CPU_DEFINES=_MIPS_
DLL_ENTRY=_CRT_INIT
MACHINE_DEFINE=-machine:MIPS
endif

ifeq   "$(BUILD_CPU)" "ALPHA"
CPU_DEFINES=_ALPHA_
DLL_ENTRY=_CRT_INIT
MACHINE_DEFINE=-machine:ALPHA
endif

ifeq   "$(BUILD_DEBUG)" "yes"
CDEBUGFLAGS= -Od -Zi -Z7 -DXDEBUG -DDEBUG
LINKDEBUGF= -debug:full -debugtype:cv -pdb:none
else
CDEBUGFLAGS= -Ox
endif

LINK = link

LIBDB = e:/msport/db.1.79.nt/PORT.now/win32/libdb.lib

BUILD_PROG = -subsystem:console -entry:mainCRTStartup

# use O=-O (usual) or O=-g (debugging)
#O=	-g

# define the database mechanisms available for map & alias lookups:
#	-DNDBM -- use new DBM
#	-DNEWDB -- use new Berkeley DB
#	-DNIS -- include NIS support
# The really old (V7) DBM library is no longer supported.
# See READ_ME for a description of how these flags interact.
#
DBMDEF=	-DNDBM -DNEWDB
# -DNIS

# environment definitions (e.g., -D_AIX3)
ENVDEF=	-DMSWIN32

# see also conf.h for additional compilation flags

# include directories
INCDIRS=-IPORT/win32/include -Ie:/msport/db.1.79.nt/PORT.now/win32/include -Ie:/mstools/h/crt -Ie:/mstools/h


CC = cl

COUTF = -c


#COPTS = -bwinnt386 -nostdinc 
# loader options
LDOPTS=	-Bstatic

# library directories
LIBDIRS=-L/usr/sww/lib

# libraries required on your system
LIBS=	-ldb -ldbm -lresolv

# location of sendmail binary (usually /usr/sbin or /usr/lib)
BINDIR=	${DESTDIR}/usr/lib

# location of sendmail.st file (usually /var/log or /usr/lib)
STDIR=	${DESTDIR}/etc

# location of sendmail.hf file (usually /usr/share/misc or /usr/lib)
HFDIR=	${DESTDIR}/usr/lib

# additional .o files needed
OBJADD=res_comp.obj res_debug.obj res_init.obj res_mkquery.obj res_query.obj res_send.obj inet_network.obj readdir.obj expandpath.obj


BEFORE=	stdlib.h stddef.h

###################  end of user configuration flags  ######################

WIN32FLAGS =   -D_DLL  -DWIN32 -D_MT  -DWIN32_LEAN_AND_MEAN   

CFLAGS=	-I. ${CDEBUGFLAGS} ${CPU_DEFINES} ${COPTS} ${INCDIRS} ${DBMDEF} ${ENVDEF} ${WIN32FLAGS}  

OBJS=	alias.obj arpadate.obj clock.obj collect.obj convtime.obj daemon.obj \
	deliver.obj domain.obj envelope.obj err.obj headers.obj macro.obj main.obj \
	map.obj mci.obj parseaddr.obj queue.obj readcf.obj recipient.obj \
	savemail.obj srvrsmtp.obj stab.obj stats.obj sysexits.obj \
	trace.obj udb.obj usersmtp.obj util.obj version.obj ${OBJADD} conf.obj

LINKS=	${DESTDIR}/usr/ucb/newaliases ${DESTDIR}/usr/ucb/mailq
BINOWN=	root
BINGRP=	kmem
BINMODE=6555

ALL=	sendmail 

all: ${ALL}



res_comp.obj:    PORT/win32/clib/resolve/res_comp.c 
	$(CC) ${COUTF} $(CFLAGS) PORT/win32/clib/resolve/res_comp.c

res_debug.obj:   PORT/win32/clib/resolve/res_debug.c
	$(CC) ${COUTF} $(CFLAGS) PORT/win32/clib/resolve/res_debug.c

res_init.obj:    PORT/win32/clib/resolve/res_init.c
	$(CC) ${COUTF} $(CFLAGS) PORT/win32/clib/resolve/res_init.c

res_mkquery.obj: PORT/win32/clib/resolve/res_mkquery.c
	$(CC) ${COUTF} $(CFLAGS) PORT/win32/clib/resolve/res_mkquery.c

res_query.obj:   PORT/win32/clib/resolve/res_query.c
	$(CC) ${COUTF} $(CFLAGS) PORT/win32/clib/resolve/res_query.c

res_send.obj:    PORT/win32/clib/resolve/res_send.c
	$(CC) ${COUTF} $(CFLAGS) PORT/win32/clib/resolve/res_send.c

inet_network.obj:  PORT/win32/clib/net/inet_network.c
	$(CC) ${COUTF} $(CFLAGS) PORT/win32/clib/net/inet_network.c

readdir.obj:  PORT/win32/clib/readdir.c
	$(CC) ${COUTF} $(CFLAGS) PORT/win32/clib/readdir.c


expandpath.obj:  PORT/win32/clib/expandpath.c
	$(CC) ${COUTF} $(CFLAGS) PORT/win32/clib/expandpath.c



.c.o:
	$(CC) ${COUTF} $(CFLAGS) $*.c






sendmail: ${BEFORE} ${OBJS}
	${LINK} \
-out:sendmail.exe \
-nodefaultlib \
${BUILD_PROG} \
${MACHINE_DEFINE} \
${LINKDEBUGF} \
${OBJS}       \
${LIBDB}      \
crtdll.lib kernel32.lib wsock32.lib advapi32.lib netapi32.lib
	cp sendmail.exe newaliases.exe
	cp sendmail.exe smtpd.exe
	cp sendmail.exe mailq.exe

#stddef.h stdlib.h:
#	cp /dev/null $@

NROFF=	nroff -h

#aliases.0: aliases.5
#	${NROFF} -mandoc aliases.5 > aliases.0
#
#mailq.0: mailq.1
#	${NROFF} -mandoc mailq.1 > mailq.0
#
#newaliases.0: newaliases.1
#	${NROFF} -mandoc newaliases.1 > newaliases.0
#
#sendmail.0: sendmail.8
#	${NROFF} -mandoc sendmail.8 > sendmail.0
#
#install: install-sendmail install-docs
#
#install-sendmail: sendmail
#	install -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} sendmail ${BINDIR}
#	for i in ${LINKS}; do rm -f $$i; ln -s ${BINDIR}/sendmail $$i; done
#	install -c -o ${BINOWN} -g ${BINGRP} -m 644 /dev/null \
#	    ${STDIR}/sendmail.st
#	install -c -o ${BINOWN} -g ${BINGRP} -m 444 sendmail.hf ${HFDIR}
#
# doesn't actually install them -- you may want to install pre-nroff versions
#install-docs: aliases.0 mailq.0 newaliases.0 sendmail.0

clean:
	rm -f ${OBJS} sendmail aliases.0 mailq.0 newaliases.0 sendmail.0

# dependencies
#   gross overkill, and yet still not quite enough....
${OBJS}: sendmail.h conf.h
