#---------------------------------------------------------------------------
#
#                       ix/MBox  M A K E F I L E
#		  Mailbox-Programm fuer UNIX(-Derivate)
#			
#			   Volker Schuermann
#		      Wuppertal, FRG, 26.10.1991
#
#
#	  	         Modifiziert fuer SVR3    
#		
#	      Walter Buerger <walterb@weller.ruhr.sub.org>
#              Ralf Heidelberg <ralf@heibox.ruhr.sub.org>
#		  Solingen/Wuppertal, FRG, 08.11.1991
#
#
#                      Modifiziert fuer ISC 2.21
#
#	   	   Hergo Pape <hergo@ivcmd.BOERDE.DE>
#		       Magdeburg, FRG, 16.11.1991
#
#---------------------------------------------------------------------------
# CFLAGS: 
# 
# -D_SYS7         UNIX System 7 (z.B. MINIX, COHERENT, ...)
# -D_MBOX         IMMER!!!
# -D_MINIX        Fuer alles, was nur unter MINIX funxt
# -D_ISC          Fuer alles, was auch unter Interactive UNIX funxt
# -D_SCO          Fuer alles, was sogar unter SCO UNIX (!) funxt
# -D_ESTDIO       Earl Chew's "estdio.h" (und GCC)
# -D_CORELEFT     Speicherplatzreserven ueberwachen (-D_CORELEFT=10000)
#		  NUR ZU TESTZWECKEN (siehe "chmem +200000")!!! 
# -D_DATESTAMP    Zeit&Datum ins Console-Logfile aufnehmen
#
# MINIX 386 (BCC)
CC= cc
LN= ln
CHMEM= chmem
#CFLAGS= -D_MINIX -D_SYS7 -D_MBOX -D_CORELEFT=10000 	# TEST
CFLAGS= -D_MINIX -D_SYS7 -D_MBOX			
#CFLAGS= -D_MINIX -D_SYS7  				# BLED
LIB=
#
# MINIX 386 & ESTDIO.H
# CC= cc
# LN= ln
# CHMEM= chmem
# CFLAGS= -D_MINIX -D_SYS7 -D_ESTDIO -D_MBOX
# LIB= -lestdio
#
# ESIX SVR3 
# CC= cc
# LN= ln
# CHMEM= chmem
# CFLAGS= -O -D_MBOX 
# LIB= -ltermcap -lcurses -lc_s -s
#
# ISC 2.21 & "Shared Libs" 
# CC= gcc
# LN= ln
# CHMEM= :
# CFLAGS= -O -D_MBOX -D_ISC -traditional
# LIB= -ltermcap -lcurses -lc_s -s


# getch.o         Unix System 7 (MINIX, COHERENT, ...)
# SysV.getch.o    Unix System V (UNIX, XENIX, ESIX, ISC, ...)

GETCH=getch.o
#GETCH=SysV.getch.o


# MBOXHOME=/mbox   Das ist das $HOME-Verzeichnis der ix/MBox

MBOXHOME=/mbox


# BIN=/usr/bin     Hier befinden sich alle BINARIES/EXECUTABLES

BIN=/usr/bin


# BLPAGER=less	   Damit zeigt BLED sein HELP-File an
BLPAGER=cat


# HELPDIR=/usr/doc  Hier findet man HELP-Files
HELPDIR=/usr/doc

# OWNER=mbox	Es waere zwar wuenschenswert die MBox ohne "root.root"
# GROUP=mail	zu fahren, aber leider klappt's nicht :-(
OWNER=root
GROUP=root

MBOX.OBJ=main.o $(GETCH) tools.o intro.o getline.o \
	nerror.o show.o	loop.o help.o admin.o mail.o control.o misc.o \
	lesen2.o pd.o portinfo.o befehl.o misc2.o postfach.o ctrlx.o \
	makro.o weiterl.o coreleft.o games.o

BLED.OBJ=$(GETCH) bltools.o blgetline.o bled.o derror.o

XMD.OBJ=xmd.o tools.o derror.o

MBRSH.OBJ=mbrsh.o

MBD.OBJ=tools.o mb-daemon.o derror.o

PROGS=mbox bled mb-daemon mbrsh xmd

default:; @echo ''
	  @echo 'Sie muessen eines der folgenden Kommandos verwenden:'
	  @echo ''
	  @echo 'make all       <-   Erstellt alle Dateien '
	  @echo 'make world     <-   Richtet Verzeichnisse ein und verteilt die Rechte'
	  @echo 'make inst      <-   Kopiert die Binaer-Dateien nach "$(BIN)"'
	  @echo 'make clean     <-   Entfernt Objekt-Dateien'
	  @echo 'make mbox	<-   Erstellt "mbox" (ix/MBox BBS)'
	  @echo 'make mb-daemon <-   Erstellt "mb-daemon" (NEWS Scanner)'
	  @echo 'make xmd       <-   Erstellt "xmd" (Mailing Agent)'
	  @echo 'make mbrsh     <-   Erstellt "mbrsh" (Externe Shell)'
	  @echo 'make bled      <-   Erstellt "bled" (B[etter] L[ine] ED[itor])'
	  @echo ''
	  @echo 'Aktive Definitionen:'
	  @echo ''
	  @echo 'Compiler [$(CC)]'
	  @echo 'CFLAGS   [$(CFLAGS)]'
	  @echo 'Lib(s)   [$(LIB)]'
	  @echo 'Getch    [$(GETCH)]'
	  @echo 'Root-ID  [$(OWNER).$(GROUP)]'
	  @echo ''

all: $(PROGS)
	@echo ''
	@echo '- Alle Dateien wurden erstellt' 
	@echo ''

mbox:	$(MBOX.OBJ)
	@echo ''
	@echo '- Das Mailboxprogramm wird uebersetzt'
	@echo ''
	$(CC) -o mbox $(CFLAGS) $(MBOX.OBJ) $(LIB) 
	@$(CHMEM) +200000 mbox		# SYS7
	@strip mbox			# SYS7
	@chown $(OWNER).$(GROUP) mbox	# SYS7
#	@chown $(OWNER) mbox		# SysV
#	@chgrp $(GROUP) mbox 		# SysV
	@chmod +x mbox
	@chmod ug+s mbox


# ACHTUNG: Bei der Uebersetzung von BLED darf die Flagge "-D_MBOX"
# nicht gesetzt werden. Um sicherzustellen das keine Routine mit
# "-D_MBOX" uebersetzt wurde, muss vor "make bled" erst "make clean" 
# ausgefuehrt werden !!! 
# 
# DAS IST WICHTIG, denn sonst funktioniert die Terminal-Steuerung des
# Editors nicht !!!

bled:	$(BLED.OBJ) 
	@echo ''
	@echo '- Der Editor (BLED) wird uebersetzt'
	@echo ''
	$(CC) -o bled $(CFLAGS) $(BLED.OBJ) $(LIB) 
	@$(CHMEM) +10000 bled		# SYS7
	@chmod +x bled

xmd:    $(XMD.OBJ) 
	@echo ''
	@echo '- Der Mailing Agent (xmd) wird uebersetzt'
	@echo ''
	$(CC) -o xmd $(CFLAGS) $(XMD.OBJ) $(LIB) 
	@chmod +x xmd

mbrsh:  $(MBRSH.OBJ) 
	@echo ''
	@echo '- Die interne SHELL (mbrsh) wird uebersetzt'
	@echo ''
	$(CC) -o mbrsh $(CFLAGS) $(MBRSH.OBJ) $(LIB) 
	@chmod +x mbrsh

mb-daemon:    $(MBD.OBJ) 
	@echo ''
	@echo '- Der NEWS Scanner (mb-daemon) wird uebersetzt'
	@echo ''
	$(CC) -o mb-daemon $(CFLAGS) $(MBD.OBJ) $(LIB) 
	@chmod +x mb-daemon
	@chmod ug+s mb-daemon
	@chown $(OWNER).$(GROUP) mb-daemon	# SYS7
#	@chown $(OWNER) mb-daemon		# SysV
#	@chgrp $(GROUP) mb-daemon 		# SysV

inst:	world all
	@echo
	@echo -n '- Die Mailbox wird installiert...'
	@cp mbox $(BIN)
	@cp bled $(BIN)
	@cp mbrsh $(MBOXHOME)
	@cp mb-daemon $(BIN)
	@cp xmd $(BIN)
	@cp bled.doc $(HELPDIR)
	@chown $(OWNER).$(GROUP) $(MBOXHOME)/* $(MBOXHOME)/etc/* # Sys7
#	@chown $(OWNER) $(MBOXHOME)/* $(MBOXHOME)/etc/*		 # SYSV
#	@chown $(GROUP) $(MBOXHOME)/* $(MBOXHOME)/etc/*		 # SYSV
	@chmod +s $(BIN)/mbox
	@chmod +s $(BIN)/mb-daemon
	@echo  'fertig.'
	@echo

copy:
	cp mbox bled mb-daemon xmd $(BIN)
	cp mbrsh $(MBOXHOME)

world:;	@echo
	@echo -n '- Die Verzeichnisse werden eingerichtet ... '
	@if test -d $(MBOXHOME) ; then echo -n ''; else mkdir $(MBOXHOME) ; fi
	@if test -d $(BIN) ; then echo -n ''; else mkdir $(BIN) ; fi
	@if test -d $(MBOXHOME)/etc ; then echo -n ''; \
		else mkdir $(MBOXHOME)/etc ; fi
	@if test -d $(MBOXHOME)/lib ; then echo -n ''; \
		else mkdir $(MBOXHOME)/lib ; fi
	@if test -d $(MBOXHOME)/src ; then echo -n ''; \
		else mkdir $(MBOXHOME)/src ; fi
	@if test -d $(MBOXHOME)/usr ; then echo -n ''; \
		else mkdir $(MBOXHOME)/usr ; fi
	@chown $(OWNER).$(GROUP) $(MBOXHOME) $(MBOXHOME)/*	# SYS7
#	@chown $(OWNER) $(MBOXHOME) $(MBOXHOME)/*		# SysV
#	@chgrp $(GROUP) $(MBOXHOME) $(MBOXHOME)/*		# SysV
	@chmod ug+rwx $(MBOXHOME)/lib
	@chmod o-rwx $(MBOXHOME)/lib
	@chmod ug+rwx $(MBOXHOME)/src
	@chmod o-rwx $(MBOXHOME)/src
	@chmod ug+rwx $(MBOXHOME)/etc
	@chmod o-rwx $(MBOXHOME)/etc
	@chmod ug+rwx $(MBOXHOME)/usr
	@chmod o-rwx $(MBOXHOME)/usr
	@echo 'fertig.'
	@echo ''


clean:;	
	@echo ''
	@echo -n '- Alte Programme etc. werden entfernt ... ' 
	@rm -f *.o mbox mbrsh bled xmd mb-daemon bltools.c blgetline.c
	@echo 'fertig.'
	@echo ''

blgetline.o:	mbox.h patchlevel.h
	@if test -f blgetline.c ; then echo -n '' ; \
		else $(LN) getline.c blgetline.c ; fi
	$(CC) -c $(CFLAGS) blgetline.c

bltools.o:	mbox.h patchlevel.h
	@if test -f bltools.c ; then echo -n '' ; \
		else $(LN) tools.c bltools.c ; fi
	$(CC) -c $(CFLAGS) bltools.c

bled.o:	mbox.h patchlevel.h
	$(CC) -c $(CFLAGS) -D'HILFE "$(BLPAGER) $(HELPDIR)/bled.doc"' bled.c


admin.o:		mbox.h
befehl.o:		mbox.h
bled.o:			mbox.h
control.o:		mbox.h
derror.o:		mbox.h
games.o:		mbox.h
getline.o:		mbox.h
help.o:			mbox.h
intro.o:		mbox.h
lesen2.o:		mbox.h
loop.o:			mbox.h
mail.o:			mbox.h
main.o:			mbox.h
makro.o:		mbox.h
mbd.o:			mbox.h
mbrsh.o:		mbox.h
mbox.h:			defs.h
misc.o:			mbox.h
misc2.o:		mbox.h
nerror.o:		mbox.h
pd.o:			mbox.h
portinfo.o:		mbox.h
postfach.o:		mbox.h
show.o:			mbox.h
tools.o:		mbox.h
weiterl.o:		mbox.h
xmd.o:			mbox.h



