# Makefile for the Multimedia Email SHell, MESH
#
# this makefile assumes that Mesh is being installed in the home
# directory of some account dedicated to processing ServiceMail

CC = cc
CFLAGS = -c -g

FORWARD = $(HOME)/.forward
MESHINIT = $(HOME)/src/mesh/init.tcl
MESHCONFIG = $(HOME)/src/mesh/config.tcl

# these files keep records of incoming requests and outgoing responses
INBOX = $(HOME)/in.mbox
OUTBOX = $(HOME)/out.mbox

# if you haven't installed the metamail package from Bellcore, change
# the mailer below to sendmail.  This will work, but you run the risk
# of transport truncating large ServiceMail messages
MAILER = splitmail -d -s %d
#MAILER = /usr/lib/sendmail -t

TEMPDIR = /tmp

# if you already have installed the tcl package from Berkeley, you
# can change these directory names and delete the tcl portion of
# this distribution
TCLSRCDIR = $(HOME)/src/tcl
TCLLIBDIR = $(HOME)/src/tcl

MESHOBJS = main.o parsemime.o ../metamail/codes.o startjob.o mailout.o

mesh: $(MESHOBJS) $(TCLLIBDIR)/libtcl.a
	$(CC) -o mesh -L/usr/lib $(MESHOBJS) $(TCLLIBDIR)/libtcl.a

install: $(HOME)/bin/mesh $(FORWARD)

$(FORWARD):
	echo "|\"HOME=$(HOME); export HOME; cd $$HOME; csh -c mesh\", $(INBOX)" > $(FORWARD)
	touch $(INBOX) $(OUTBOX)

$(HOME)/bin/mesh: mesh
	cp mesh $(HOME)/bin/mesh

$(TCLLIBDIR)/libtcl.a:
	cd $(TCLSRCDIR); make

main.o: main.c mesh.h
	$(CC) $(CFLAGS) main.c

parsemime.o: parsemime.c mesh.h
	$(CC) $(CFLAGS) -DTEMPDIR=\"$(TEMPDIR)\" parsemime.c

../metamail/codes.o: ../metamail/codes.c
	cd ../metamail; $(CC) $(CFLAGS) -I. codes.c

startjob.o: startjob.c mesh.h
	$(CC) $(CFLAGS) -I$(TCLSRCDIR) -DMESHINIT=\"$(MESHINIT)\" -DMESHCONFIG=\"$(MESHCONFIG)\" startjob.c

mailout.o: mailout.c mesh.h
	$(CC) $(CFLAGS) -I$(TCLSRCDIR) "-DMAILER=\"$(MAILER)\"" mailout.c
#	$(CC) $(CFLAGS) -I$(TCLSRCDIR) -DOUTBOX=\"$(OUTBOX)\" "-DMAILER=\"$(MAILER)\"" mailout.c
