# Makefile for binkley system
#
# $Id: Makefile,v 1.10 1993/03/14 22:08:10 benst Exp benst $
#

# start of user configurable things:

# Owner and group for binkley
# For bbs setup it must run as root
# For point setup it can run as uucp
BTUID = root
# Owner and group for supporting programs
OWNER =	uucp
GROUP =	uucp 
# GROUP = uucp

# Install directories
# For Next and Sony
COMMONDIR = /usr/local
# Linux does not have a standard distribution, so Binkley does not
# go into /usr/local (at least on my system ELAG
# COMMONDIR = /usr
LIBDIR = $(COMMONDIR)/lib/binkley
BINDIR = $(COMMONDIR)/bin
DIRS = $(LIBDIR) $(BINDIR)

# Additional libraries needed
LIBS = -lcurses -ltermcap

# CFLAGS note:
# -fwritable-strings:	problem in data.c with writing to stat_str
#						possibly others. Need to check this!
# For NeXT NeXTStep 3.0:
# CFLAGS  = -g -O -W -DM68000 -DO_BINARY=0 -DLIBPATH='"$(LIBDIR)"' -Dstrnicmp=strncasecmp -Dstricmp=strcasecmp -fwritable-strings
# For Sony News:
#CFLAGS  = -O -DSony -DM68000 -DO_BINARY=0 -DLIBPATH='"$(LIBDIR)"' -Dstrnicmp=strncasecmp -Dstricmp=strcasecmp -fwritable-strings
# For Linux
CFLAGS  = -O -DUSG -DO_BINARY=0 -DLIBPATH='"$(LIBDIR)"' -Dstrnicmp=strncasecmp -Dstricmp=strcasecmp -fwritable-strings

# Programs to use
CC=cc
MKDIR=mkdir
ECHO=echo

# End of user configurable things

SRCLNG	= btlng.c get_lang.c put_lang.c
SRCCTL	= btctl.c
SRCBT 	= b_banner.c b_bbs.c b_flofil.c b_frproc.c b_fuser.c b_help.c \
         b_initva.c b_passwo.c b_proto.c b_rspfil.c b_sbinit.c b_script.c \
         b_search.c b_sessio.c b_spawn.c b_term.c b_termov.c b_wazoo.c \
         b_whack.c b_wzsend.c brec.c bsend.c bt.c btconfig.c \
         com_unix.c data.c dirfind.c evtparse.c ftsc.c janus.c \
         langload.c m7rec.c m7send.c mailer.c mailroot.c \
         mdm_proc.c misc.c unix_fossil.c nodeproc.c outbound.c overlay.c \
         recvbark.c sched.c sendbark.c \
         statetbl.c xmrec.c xmsend.c yoohoo.c zmisc.c zreceive.c zsend.c \
		 version.c sbuf.c logfile.c emsi.c
SRCCHG	= change.c
SRCFTM	= fidotime.c

CFILES = $(SRCLNG) $(SRCCTL) $(SRCBT) $(SRCCHG)

OBJLNG = $(SRCLNG:.c=.o)
OBJCTL = $(SRCCTL:.c=.o)
OBJBT  = $(SRCBT:.c=.o)
OBJCHG = $(SRCCHG:.c=.o)
OBJFTM = $(SRCFTM:.c=.o)

OFILES = $(OBJLNG) $(OBJCTL) $(OBJBT) $(OBJCHG) $(OBJFTM)

SOURCEFILES = $(CLASSES) $(CLASSES:.m=.h) $(INTERFACES) $(APPICON) $(DOCICONS)\
	$(MFILES) $(CFILES) $(HFILES) $(PSWFILES) $(PSWMFILES) $(OTHERSRCS) \
	$(OTHER_SOURCEFILES) $(TIFFFILES) $(SNDFILES)

MAKEFILEDIR = /usr/lib/nib

INSTALLDIR = $(HOME)/Apps
INSTALLFLAGS = -c -s -m 755

PROGS	= btlng btctl bt change fidotime

all: Makefile.dep $(PROGS)
#all:	$(PROGS)

btlng:	$(OBJLNG)
	$(CC) $(CFLAGS) -o btlng $(OBJLNG)

btctl:	$(OBJCTL)
	$(CC) $(CFLAGS) -o btctl $(OBJCTL)

bt:	$(OBJBT)
	$(CC) $(CFLAGS) -o bt $(OBJBT) $(LIBS)

# change and fidotime are a few utilities that we use overhere
change:	$(OBJCHG)
	$(CC) $(CFLAGS) -o change $(OBJCHG)

fidotime:	$(OBJFTM)
	$(CC) $(CFLAGS) -o fidotime $(OBJFTM)

clean:
	rm -f $(PROGS) $(OFILES) *~ tags Makefile.dep binkley.lng binkley.day binkley.prm binkley.scd mail.sys

Makefile.dep depend: # $(SOURCEFILES)
	-/bin/rm -f Makefile.dep
	$(CC) -MM $(CFLAGS) $(CLASSES) $(MFILES) $(CFILES) | \
	    awk '{ if ($$1 != prev) { if (rec != "") print rec; \
		rec = $$0; prev = $$1; } \
		else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
		else rec = rec " " $$2 } } \
		END { print rec }' > Makefile.dep

strip: all
	-for i in $(PROGS); \
	do \
		strip $$i; \
	done

install: all
	for i in $(DIRS); \
	do \
		if [ ! -d $$i ] ; then $(ECHO) "Creating directory $$i"; \
			$(MKDIR) $$i; \
			chown ${OWNER} $$i; \
			chgrp ${GROUP} $$i; \
			chmod 750 $$i; \
			$(ECHO) "done."; \
		fi; \
	done
	for i in $(PROGS); \
	do \
		rm -f $(LIBDIR)/$$i; \
		rm -f $(BINDIR)/$$i; \
	done
	install -c -m 4755 -o $(BTUID) -g $(GROUP) bt $(BINDIR)
	install -c -m 4755 -o $(OWNER) -g $(GROUP) bink $(BINDIR)
	install -c -m 4755 -o $(OWNER) -g $(GROUP) fido-toconv $(LIBDIR)
	install -c btctl $(LIBDIR)
	install -c btlng $(LIBDIR)
	install -c english.txt $(LIBDIR)
	if [ ! -f $(LIBDIR)/binkley.cfg ] ; then install -c binkley.cfg $(LIBDIR); fi; 
	(cd $(LIBDIR); ./btlng english.txt binkley.lng)
	(cd $(LIBDIR); ./btctl)
	install -c -m 4755 -o root -g wheel change $(BINDIR)
	install -c fidotime $(BINDIR)
	@echo
	@echo
	@echo Remember to set environment variable 'BINKLEY' if  your binkley.cfg/evt are
	@echo not stored in $(LIBDIR)
	@echo

include Makefile.dep
