#---------------------------------------------------------------------------
#                      t-bbs  M A K E F I L E
#             Bulletin Board System for UNIX(-Derivations)
#             Warning: THIS VERSION ONLY SUPPORT LINUX!!!!!!!
#                     NetBSD-Support are in developemt!
#		(c) 1994/1996 Sylvio Runge, Magdeburg, FRG
#----------------------------------------------------------------------------
#	  	      Lizens:
#                     IX/MBox  Volker Schuermann
#                     Wuppertal, FRG, 01.03.1994
#----------------------------------------------------------------------------
# Please mail bug-report to:  "runge@nina.boerde.de"  or
#              Mailing-List: "tbbs@mail.boerde.de" (Mailing-List)
#----------------------------------------------------------------------------
#
#                          Modified for SVR3
#
#             Walter Buerger <walterb@weller.ruhr.sub.org>
#              Ralf Heidelberg <ralf@heibox.ruhr.sub.org>
#                 Solingen/Wuppertal, FRG, 08.11.1991
#
#
#                        Modified for ISC 2.21
#
#                  Hergo Pape <hergo@ivcmd.BOERDE.DE>
#                      Magdeburg, FRG, 16.11.1991
#
#
#                      Modified for ST Minix/c86
#
#                     Olaf <olaf@oski.toppoint.de>
#                         Kiel, FRG, 14.01.1992
#
#
#                           SVR4 Support by
#
#                Andreas Laumann <andreas@xenox.w.open.de>
#                      Wuppertal, FRG, 30.05.1992
#
#
#                        French Translation by
#
#                 Laurent Cas <cas@cismibm.univ-lyon1.fr>
#                       Lyon, France, 16.06.1993
#
#
#                     Modified for LINUX/Slackware
#
#                 Uwe Gellhaus <uwe@phase23.ks.open.de>
#                         Kassel, FRG, 31.12.1993
#
#
#	             Adapted to SNI SINIX 5.41 (SVR4)
#    	      Norbert Narten <Norbert.Narten@unnet.wupper.de>
#		           Koeln, FRG, 3.09.1994
#
#
#
#             <runge@boerde.de> since 1995:
# 		     Modified for Filemanager, extented Filearea,
#		     QWK/SOUP-Support, multi-languages, bug-fixing(!), 
#		     index-daemon (BBS-Listen,CDROM-Support...) , 
#		     Rip1.54-Support (Menu + MediaCity + SysopRipScripts...)
# 		     S++Support ->in development!
#		     chat-server/client-support,
#                    lynx-changes for bbs etc.
#		     nntp support,
#		     setup-script's (tbbs.setup etc.)
#		     shared-bbs-libs/mem support, 
#                    NetBSD-Support ->in development!
#                    and match more ;)
#---------------------------------------------------------------------------
#
#
#---------------------------------------------------------------------------
# This is a workaround for the System V (not SVR4) /bin/sh bug
SHELL = /bin/sh

# All BBS binaries will be stored in the BIN2 dircetory ... except [mbrsh].
# NOTE: The path to BIN has to be on all users PATH!
# please not change !!!
MBOXHOME=`./MBOXHOME`
BIN=`./MBOXHOME`         
BIN2=`./MBOXHOME`/bin
# BIN==MBOXHOME !!!!!!!


# please select the sysop-language (only german sysop-laguage is at this time supported!!)
# this 
# Do not change!!!!
SPRACHE=LANGUAGE_GERMAN        # deutsch 
#SPRACHE=LANGUAGE_ENGLISH       # english 
#SPRACHE=LANGUAGE_FRANCAIS      # francais

# please select your ADM-Editor (only for ADM-Filemanager)
EDITOR=joe
# EDITOR=/usr/bin/vi 


#define  when you run local-RIP-VGA-Graphics  (only for VGA-linux !!!!)
#GRX=
#GRX=-DVGA_GRAFIK

# the linux VGA-Libs 
# see GRX...   
#GRXLIB= grafik/libTBBSGrafik.a  -lvga -lvgagl -lgrx  
#OBJLIBS= ripterm/libRIPTerm.a procs/libproc.a


@if  test -f /usr/lib/libtermcap.so.2 ; then BLA=  /usr/lib/libtermcap.so.2 ; \
	else BLA=   /lib/libtermcap.so.2;  fi


#@if  $BASH_VERSION ; then echo; else echo "You must compile from a bash-compatible shell"; exit -1 ;; fi


SHLIBS= `./.shtest`
#/lib/libtermcap.so.2

LIB=  $(LIBPROC) $(OBJLIBS)  $(GRXLIB) #-L/usr/lib/termcap -ltermcap 
#LIB=  $(LIBPROC) $(OBJLIBS)  $(GRXLIB) /usr/lib/libtermcap.so.2 #-L/usr/lib/termcap -ltermcap 

#LIB=  $(LIBPROC) $(OBJLIBS)  $(GRXLIB)  -ltermcap;  fi
#@if  test -f /usr/lib/termcap/libtermcap.a ; then LIB=  $(LIBPROC) $(OBJLIBS)  $(GRXLIB) -L/usr/lib/termcap -ltermcap ; \
#	else LIB=  $(LIBPROC) $(OBJLIBS)  $(GRXLIB)  -ltermcap;  fi
 
OBJLIBS=  procs/libproc.a 
#rawkey/librawkey.a


#RIPLIB=rip/libRIP.a 
#NN/libNNews.a
#---------------------------------------------------------------------------
# Now some predefined settings for various compilers/systems. You might 
# find other combinations of CFLAGS more useful, so check above which 
# features you want.
#---------------------------------------------------------------------------
#
CC= gcc
RANLIB=ranlib
LN= ln
LFLAGS   = -N
CHMEM= :

#compiler warnings
#W_FLAGS= -Wunused -Wreturn-type -Wswitch -Wimplicit -Wuninitialized -Wshadow
#-DONLY_GERMAN


#defs for OS-System, auto-detected!!!!!
OS_DEFS=`./.osdefs` 
DEF_DEFS=`./.gbldefs` 

#-fno-strength-reduce  
CFLAGS= -O2 -traditional -s  $(W_FLAGS)  $(DEF_DEFS)  \
	$(OS_DEFS)  -fno-strength-reduce -D_ANSI $(GRX) 


# for external filemanager 'ADM-Filemanager' 
CFLAGS2= -s -traditional -O6 -w -traditional  $(DEF_DEFS)  \
	  $(OS_DEFS)  -DNCURSES -fno-strength-reduce\
	  -DEDITOR="\"$(EDITOR)"\" \
         -I/usr/include/ncurses

# for dep. 
CFLAGS3= -s -traditional -O3 -Wall  $(DEF_DEFS)  -DDEP\
	-DHOME="\"$(MBOXHOME) "\" \
	  $(OS_DEFS)  -DNCURSES\
         -I/usr/include/ncurses


LIB1= -ltermcap	-lbsd            # fuer chat etc... 

LIBSTATIC=   $(LIBPROC) $(OBJLIBS)  $(GRXLIB) -ltermcap
LIB2= -lncurses

CONVERT= mv a.out $@
CHOWN= chown $(OWNER)
CHGRP= chgrp $(GROUP)
ROOT_UID=`id -u`
STRIP= :

#jump-lib's - Don't change!
DLLNAME=libbbs.so.2
DLLNAME2=libbbs_m.so.2
DLLNAME3=libbbsr.so.2
DLLNAME4=libbbsn.so.2
DLLTESTNAME=libbtest.so.2


DLLVER=.1.1

# This is the pager which BLED uses to display his helpfile

BLPAGER=/bin/cat


# In this directory, you hide your helpfiles and manuals

HELPDIR=$(MBOXHOME)/etc


# Sorry, but SETUID root.root is still necessary
# Don't change!!!!!
GROUP=1000
BBSUID=1000
BBSUID2=1001
ROOTUID=0
ROOTGID=0


BBS=$(BBSUID).$(GROUP)         # BBS:ID.GID
OWNER=$(BBSUID)


#---------------------------------------------------------------------------
# That's about it. There's nothing left to define ... leave now and try to
# get the whole thing compiled. Type: 'make inst' 
#---------------------------------------------------------------------------




SUBDIRS		=qwk     


RIP.OBJ=    rip/rip.cmd_api.o rip/ripcal.o \
        rip/RipTest.o rip/Ripscript.o rip/Rip.Stuff3.o rip/RipScript.o\
        rip/rip_loop.o rip/RipMnu.o rip/RipPortinfo.o  rip/RipLibArticle.o\
        rip/RipMore.o rip/RipCity.o rip/RipStuff2.o rip/RipTemplates.o rip/RipGroup.o \
        rip/RipUsrLib.o




MBOX.OBJ=getch.o tools.o g94.o getline.o \
	intro.o nerror.o show.o	loop.o help.o admin.o mail.o control.o \
	misc.o lesen.o lesen2.o pd.o portinfo.o befehl.o misc2.o newuser.o\
	postfach.o ctrlx.o makro.o weiterl.o coreleft.o games.o suchen.o \
	baudrate.o faces.o uptodate.o dis.o uudecode.o subscribe.o \
	fido.mnu.o s_menue.o db.o

MBOX2.OBJ= cmd.o text.o bbs.main.o\
	cdrom.o ip.o config.o assist.o\
	sfile.o s_tools3.o pfile_a.o \
	pdloop.o s_upload.o pfind.o s_downl.o s_scatch.o s__tools.o \
	language.o conf2.o mbox0.tools.o s_ratio.o s_befehl.o s_qwk.o \
	pd_log.o s_qwk2.o sexport.o stree.o\
	GrafikTest.o fidomenue.o s_nntp.o sr_chat.o groups.o

BBSDUMMY.OBJ=bbs.shell.o

BBSSHELL.OBJ=bbs.exec.o

BBSLOGIND.OBJ=bbslogd.o 


XMD.OBJ=xmd.main.o  getch.o  derror.o conf.mbox.o mbox.tools.o ztool.o 
MAILSPOOL.OBJ=bbsmail.spool.o  getch.o  derror.o conf.mbox.o mbox.tools.o ztool.o 
XMD.ALL.OBJ=xmd.all.o  getch.o  derror.o conf.mbox.o mbox.tools.o 

BBS_MAIL.OBJ= bbs_mail.o getch.o  mbox.tools.o uqwk/language.o derror.o ztool.o  

MBRSH.OBJ=mbrsh.o

MBD.OBJ= getch.o  mb-daemon.o derror.o dstock.o conf.mbox.o mbox.tools.o 

SNNTP.OBJ= getch.o   derror.o  mbox0.tools.o  s_nntp.index.o

CHAT.ENG.OBJ= getch.o ctrlx.o chat.english.o  mbox0.tools.o  
CHAT.GER.OBJ= getch.o ctrlx.o chat.deutsch.o  mbox0.tools.o  
CHAT.FRANZ.OBJ= getch.o ctrlx.o chat.francais.o mbox0.tools.o  

SFILE_A.OBJ=sfile_a.o zerror.o stools.o sfind.o slist.o dloop.o \
            sdl_list.o stools2.o s_tools.o stools4.o

convert.OBJ=s_convert.o derror.o

err_convert.OBJ=err_convert.o derror.o

QWKD.OBJ=qwkd.o uqwk/qwk_tool.o

ADDNEWUSER.OBJ=add.newuser.o uqwk/qwk_tool.o

BBSD.OBJ=bbsd.o uqwk/qwk_tool.o derror.o

MKLANG=mk.lang.o   derror.o uqwk/language.o

BBS.WHO.OBJ=bbs.who.o derror.o 

SFILEMAN.INDEX.OBJ=sfileman.index.o stools2.o s_tools5.o derror.o

#	bled.deutsch bled.english bled.francais 
PROGS=  make.bbs mbrsh bbsmail.spool xmd bbs.who convert bbslogd qwk bbs_mail qwkd\
	chatd update_usr Usr.list add.newuser\
	bled nntp_post mk.lang \
	sfileman.index  bbs.shell bbs.exec bbs.ed \
	smiley check_bbs qwk.spool




PID= `echo $$`

default:	
	@echo ''
	@echo 'One of the following:'
	@echo '+---------------------------------------------------------------+'
	@echo '+ make most       -   "make dep" + "make all" + "make inst"     +'
	@echo '+---------------------------------------------------------------+'
	@echo 'make dep          -   make dependencies '
	@echo 'make all          -   Create every object file'
	@echo 'make inst         -   Install the BBS (make all...) '
	@echo 'make clean        -   Remove object files'
	@echo ''
	@echo 'Active definitions:'
	@echo 'Compiler [$(CC)]'
	@echo 'CFLAGS   [$(CFLAGS)]'
	@echo 'Libs(2)  [$(LIB2)]'
	@echo 'Lib(s)   [$(LIB)]'
	@echo 'bbs-id   [$(OWNER).$(GROUP)]'
	@echo 'Home Dir ['$(MBOXHOME)']'

all:	perm test RIP  RIPTERM  LIBPROC LibNNews ver  $(PROGS) WENDY  
	@echo ''
	@echo '- All files have been made.'
	@echo ''


perm:
	@if [ $(ROOT_UID) = 0 ] ; then echo 'check permission'; \
	else echo 'Sorry, you must being root (UID|GID == 0)' ; \
	echo ; \
	kill -9 0; \
	fi

vall:	version.h test LIBPROC LibNNews ver  $(PROGS) WENDY   
	@echo ''
	@echo '- All files have been made.'
	@echo ''

mbox.lib:	$(MBOX.OBJ) $(MBOX2.OBJ)
	@echo ''
	@echo '- The BBS (static-lib-version) is going to be compiled...'
	@echo ''
	@echo "test for object-files...."
	@if ! test -f ./libbbs.a ; then  $(AR)  r  libbbs.a  $(MBOX.OBJ) $(MBOX2.OBJ) $(RIP.OBJ) ; \
		$(RANLIB) ./libbbs.a ;\
		else \
		echo "ok"; \
		echo; fi


test.elf:
	@echo "search os-typ...."
	@echo `./.osdefs dummy`
	@echo
	@echo "test compiler...."
	@echo '-------gcc-check, please wait...--------------------------------------'
	@echo "find gcc..."
	@touch test.c
	@if gcc -c test.c ; then  echo " gcc: installed";\
		else \
		echo " gcc: not installed -> stop"; \
		kill -9 0; \
		echo; fi
	@echo "test \"-shared\" option"
	@if gcc -c -s -shared test.c ; then  echo "  \"-shared\" ->ok  " ;\
		echo>.make.shared; \
		else \
		rm -f .make.shared; \
	 	echo "  gcc: can not make shared libs, elf-support=disable (system not supported ELF!)"; \
		echo; fi
	@echo "test linker \"-Wl\" option"
	@if gcc -O2 -s -shared -Wl,-soname,$(DLLTESTNAME) -o $(DLLTESTNAME)$(DLLVER)   test.o ; then  echo "  \"elf-support: enable\" ->build shared-version  " ;\
		echo>.make.elf; \
		else \
		echo "  gcc: elf = disable (OS has no ELF-Support???)" ; \
		rm -f .make.elf; \
		rm -f .make.shared ;\
		echo "+----------------------------------------------------------------------+";\
		echo "+ STOP -> First, enable ELF-Support or check out your gcc-installation +"; \
		echo "+  check out : gcc-version>=2.7, Linux-version>=1.3, elf-support?      +"; \
		echo "+----------------------------------------------------------------------+";\
		exit -1; \
		echo; fi
	@echo "-----------------------------------------------------------------------"




#ar rcsv ../lib/libbbs.a $(MBOX.OBJ) $(MBOX2.OBJ) $(RIP.OBJ) ; 
mbox.dll:	$(MBOX.OBJ) $(MBOX2.OBJ)
	@echo ''
	@echo '- The BBS-JUMP-Libs #1 is going to be compiled...'
	@echo ''
	@if ! test -f $(DLLNAME)$(DLLVER) ; then echo 'make shared-bins, please wait....' ;\
		gcc -O2 -s  -shared -Wl,-soname,$(DLLNAME) -o $(DLLNAME)$(DLLVER) $(MBOX.OBJ) $(MBOX2.OBJ) $(RIP.OBJ) $(LIB) $(SHLIBS)  ; \
		echo ;\
       		$(STRIP) $(DLLNAME)$(DLLVER) ;\
		else \
		echo "done #2"; \
		echo; fi

make.bbs: test
	@if test -f $(MBOXHOME)/src/.make.shared ; then echo 'make shared-lib-version' ; \
		make bbs; \
		else echo 'elf-support disable -> make static-bbs-version' ; \
		echo ; \
		make mbox; fi

xmd.dll: test	$(XMD.OBJ) 
	@echo ''
	@echo '- The BBS-JUMP-Lib #2 is going to be compiled...'
	@echo ''
	@echo "make shared-bins, please wait...."
	@if test -f $(MBOXHOME)/src/.make.shared ; then echo 'make xmd: shared-lib-version' ; \
		gcc -O2 -s -shared -Wl,-soname,$(DLLNAME2) -o $(DLLNAME2)$(DLLVER) $(XMD.OBJ) $(LIB)  $(SHLIBS); \
		echo ;\
		else \
		echo "done "; \
		echo ;\
		fi
#	$(CC)  -o bbs bbs.o -L$(MBOXHOME)/lib -L../lib -lbbs  ;
bbs:	test mbox.dll
	@echo 
	@echo "install shared-libs in ~bbs/lib.."
	@cp $(DLLNAME)$(DLLVER) ../lib
	@echo "make ldconfig....."
	@ldconfig ../lib
	@ln -sf ../lib/$(DLLNAME)$(DLLVER) ../lib/$(DLLNAME)
	@echo "make dynamic bbs-version, please wait....."
	@if ! test -f bbs ; then \
	$(CC) $(CFLAGS) -c bbs.c ;\
	make mbox.dll; \
	$(CC) -o $@ bbs.o ../lib/$(DLLNAME) $(LDFLAGS) $(SHLIBS); \
		echo ;\
		else \
		echo "done"; \
		echo; fi
       @$(STRIP)




mbox:	test mbox.lib 
	@echo ''
	@echo '- The BBS is going to be compiled...'
	@echo ''
	@if ! test -f ./bbs ; then  $(CC)  $(CFLAGS)  -c main.c ; $(CC)  $(CFLAGS)  main.o libbbs.a $(RIPLIB) $(LIB) ; \
	mv a.out bbs; \
	chown $(BBS) bbs; \
	chmod +x bbs; \
	$(STRIP); \
	echo "done"; \
	else \
	echo "ok"; \
	echo; fi

mbox.a:	test $(MBOX.OBJ) $(MBOX2.OBJ) RIP  RIPTERM #RAWKEY
	@echo ''
	@echo '- The BBS-OBJ is going to be compiled...'
	@echo ''
	@ar rcsv mbox.a $(MBOX.OBJ) $(MBOX2.OBJ)


mbox.bin: test	
	@echo ''
	@echo '- The BBS is going to be linked...'
	@echo ''
	$(CC) $(CFLAGS) mbox.a $(RIPLIB) $(LIB)  $(SHLIBS)
	@$(CONVERT)
	@$(CHGRP) $@
	@$(CHOWN) $@
	@chmod +x mbox.bin
	@chmod ug+s mbox.bin
	@$(STRIP)

mbox.bin.pack:	
	@echo ''
	@echo '- The BBS-OBJECT-PACK is going to be create...'
	@echo ''
	@tar cfvz  /tmp/tbbs.obj.tgz Makefile compile.h mbox.a $(OBJLIBS) $(RIPLIB) Makefile

LIBPROC: 
	cd procs; make 

LibNNews: 
	cd NN; make 

VU: 
	cd VU; make
qwk.spool: 
	cd qwk.spool.src; make

nntp_post: 
	cd nntp.post; make


GRAFIK:
	@echo ''
	@echo 'compile graphics tools....'
	cd grafik; make 

mbox_subdirs: 
#	set -e; for i in $(SUBDIRS); do  cd $$i; make; done



bled:
	@echo ''
	@echo '- The Editor BLED (universial-version) is going to be compiled...'
	@echo ''
	cd BLED; make bled



bled.deutsch:
	@echo ''
	@echo '- The Editor BLED (german) is going to be compiled...'
	@echo ''
	cd BLED; make bled.deutsch 




bled.english:
	@echo ''
	@echo '- The Editor BLED (english) is going to be compiled...'
	@echo ''
	cd BLED; make bled.english


bled.francais:
	@echo ''
	@echo '- The Editor BLED (francais) is going to be compiled...'
	@echo ''
	cd BLED; make bled.francais


qwk: 
	@echo
	@echo
	@echo "uqwk - tool is going compiled ... "
	@echo ''
	cd uqwk; make uqwk


chatd: 
	@echo
	@echo
	@echo "The Schrodingers Chat (with Sockets) will going compiled ... "
	@echo ''
	cd chat.Schrodinger; make 


vu: 
	@echo
	@echo
	@echo "the visual-menu-agent  will going compiled ... "
	@echo ''
	cd VU; make 
	@chown $(BBS) VU/vu


smiley: 
	@echo
	@echo
	@echo "The Smiley-Generator will going compiled ...  ;-) "
	@echo ''
	cd games/smiley; make 



update_usr: 
	@echo
	@echo
	@echo "smail-bbs-alias + user-expire -daemon will going compiled ... "
	@echo ''
	cd alias.update; make 


check_bbs: 
	@echo
	@echo
	@echo "the checkit-tool ... "
	@echo ''
	cd checkit; make

Usr.list: 
	@echo
	@echo
	@echo "Adv. Admin-Tools will going compiled ... "
	@echo ''
	cd usr.list; make 


RAWKEY: 
	@echo
	@echo
	@echo "The rawkey-lib will going compiled ... "
	@echo ''
	cd rawkey; make 







sysfileman:  $(SFILE_A.OBJ)
	@echo ''
	@echo '- The ADM-Fileshell is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS)  $(SFILE_A.OBJ) $(LIB2)
	@$(CONVERT)
	@$(STRIP)
	@chmod +x sysfileman

bbslogd:  $(BBSLOGIND.OBJ)
	@echo ''
	@echo '- The BBS-Login-Daemon is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS)  $(BBSLOGIND.OBJ)
	@$(CONVERT)
	@$(STRIP)
	@chmod +x bbslogd


bbs.shell:  $(BBSDUMMY.OBJ)
	@echo ''
	@echo '- The BBS-Dummy-Shell is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS)  $(BBSDUMMY.OBJ) 
	@$(CONVERT)
	@$(STRIP)
	@chmod +x bbs.shell
	@chown $(BBS) bbs.shell

bbs.exec:  $(BBSSHELL.OBJ)
	@echo ''
	@echo '- The BBS-Shell is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS)  $(BBSSHELL.OBJ) 
	@$(CONVERT)
	@$(STRIP)
	@chmod +x bbs.exec
	@chmod +s bbs.exec
	@chown 0.0 bbs.exec

bbs.who:  $(BBS.WHO.OBJ)
	@echo ''
	@echo '- The BBS-WHO-TOOL for Sysop :-)'
	@echo ''
	$(CC) $(CFLAGS)  $(BBS.WHO.OBJ) $(LIB)  $(SHLIBS)
	@$(CONVERT)
	@$(STRIP)
	@chmod +xs bbs.who



convert:  $(convert.OBJ)
	@echo ''
	@echo '- The User-Database-Converter is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS)  $(convert.OBJ) 
	@$(CONVERT)
	@$(STRIP)
	@chmod +x convert

err_convert:  $(err_convert.OBJ)
	@echo ''
	@echo '- The User-Database-ConverterII is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS)  $(err_convert.OBJ) 
	@$(CONVERT)
	@$(STRIP)
	@chmod +x err_convert



sfileman.index:  $(SFILEMAN.INDEX.OBJ)
	@echo ''
	@echo '- The Fileman-Index-Daemon is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS)  $(SFILEMAN.INDEX.OBJ) 
	@$(CONVERT)
	@$(STRIP)
	@chmod +x sfileman.index
	@chown $(BBS) sfileman.index


qwkd:  $(QWKD.OBJ)
	@echo ''
	@echo '- The QWK-Daemon is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS)  $(QWKD.OBJ) 
	@$(CONVERT)
	@$(STRIP)
	@chown $(BBS) qwkd


add.newuser:  $(ADDNEWUSER.OBJ)
	@echo ''
	$(CC) $(CFLAGS)  $(ADDNEWUSER.OBJ) 
	@$(CONVERT)
	@$(STRIP)



bbsd:  $(BBSD.OBJ)
	@echo ''
	@echo '- The T-BBS-Daemon is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS)  $(BBSD.OBJ) 
	@$(CONVERT)
	@$(STRIP)


mk.lang:  
	@echo ''
	@echo '- The Languages-Add/Check-Tool (only for devel.) ...'
	@echo ' >-----------------------------------------------------------<'
	@echo ' > please send translations or changes for new languages to  <'
	@echo ' > my mail-address  <runge@boerde.de>                        <'
	@echo ' >                                              thank you.   <'
	@echo ' >-----------------------------------------------------------<'
	@cd mk.lang.src; make 

bbsmail.spool: $(MAILSPOOL.OBJ)
	@echo ''
	@echo '- make bbsmail spool-agent...'
	@echo ''
	$(CC)  -o bbsmail.spool  $(MAILSPOOL.OBJ) 




xmd:    $(XMD.OBJ)
	@echo ''
	@echo '- The Mailing Agent (xmd) is going to be compiled...'
	@echo ''
	@echo 
	@if test -f $(MBOXHOME)/src/.make.shared ; then echo 'install shared-libs in ../lib' ;\
	make xmd.dll ; \
	cp $(DLLNAME2)$(DLLVER) ../lib ; \
	echo 'make ldconfig.....'; \
	ldconfig ../lib; \
	ln -sf ../lib/$(DLLNAME2)$(DLLVER)  ../lib/$(DLLNAME2) ;\
	echo 'make dynamic bbs-version, please wait.....'; \
	if ! test -f xmd ; then \
	$(CC) $(CFLAGS) -c xmd.c ;\
	$(CC) -o $@ xmd.o ../lib/$(DLLNAME2) $(LDFLAGS) ; \
		echo ;\
		else \
		echo "done"; \
		echo; fi \
	else \
		echo 'make static xmd-version ';\
 		if ! test -f xmd ; then \
		$(CC) $(CFLAGS) -c xmd.c ;\
		$(CC)  -o xmd xmd.o $(XMD.OBJ) ;\
			echo ;\
			else \
			echo "done"; \
			echo; fi \
        fi
	@chmod +xs xmd
	@chown 0.0 xmd


xmd.all: $(XMD.ALL.OBJ)
	@echo ''
	@echo '- The Global-Mailing Agent (xmd.all) is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS) $(XMD.ALL.OBJ) $(LIB1)
	@$(CONVERT)
	@$(STRIP)
	@chmod +x xmd.all
	@chmod ug+s xmd.all







bbs_mail:    $(BBS_MAIL.OBJ)
	@echo ''
	@echo '- The internal Mailing Agent (bbs_mail) is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS) $(BBS_MAIL.OBJ) 
	@$(CONVERT)
	@$(STRIP)
	@chown $(BBS) bbs_mail

mbrsh:  $(MBRSH.OBJ)
	@echo ''
	@echo '- The external SHELL (mbrsh) is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS) $(MBRSH.OBJ) 
	@$(CONVERT)
	@$(STRIP)
	@chmod +x mbrsh

mbd:	mb-daemon



chat.deutsch:   $(CHAT.GER.OBJ)
	@echo ''
	@echo '- The Chat Facility (german) is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS) $(CHAT.GER.OBJ) $(LIB1)
	@$(CONVERT)
	@$(STRIP)
	@chmod +x chat.deutsch

RIP:	test
	cd rip; make all

RIPTERM:
	cd ripterm ; make 

chat.english:   $(CHAT.ENG.OBJ)
	@echo ''
	@echo '- The Chat Facility (english) is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS) $(CHAT.ENG.OBJ) $(LIB1)
	@$(CONVERT)
	@$(STRIP)
	@chmod +x chat.english


chat.francais:   $(CHAT.FRANZ.OBJ)
	@echo ''
	@echo '- The Chat Facility (francais) is going to be compiled...'
	@echo ''
	$(CC) $(CFLAGS) $(CHAT.FRANZ.OBJ) $(LIB1)
	@$(CONVERT)
	@$(STRIP)
	@chmod +x chat.francais




dep:  compile.h test.elf
	@echo ''
	@echo 'check config.h.... (user-config) '
	@rm -f test.it
	@make test.it
	@./test.it
	@echo ''
	@echo ''
	@echo '- make dependencies - please wait ...'
	@echo ''
	@rm -f compile.h sprache.h
	@make compile.h
	$(CC) -MM $(CFLAGS3) *.c >.dep
	cat makefile .dep >Makefile
	rm .dep
	@echo ''
	cd uqwk; make  dep
	cd rip; make dep
	@echo ''
	@if  test -f $(MBOXHOME)/src/.make.shared ; then ./.shmsg; fi
	@echo '- and now.. - you can start "make all / make inst" ...'

most:  dep inst
	@echo ''
	@echo '- make - please wait ...'

	@echo ''

test:	
	@if test -f $(MBOXHOME)/src/.make.shared ; then echo '+--------------------------------------------------------------------------+'; \
	echo '+ Do not forget - THIS IS IMPORTANT (COMPILING+RUNNING)!                   +'  ;\
	echo '+ First add your bbs-jump-lib-directory "'`MBOXHOME`'/lib" for the';\
	echo '+ dynamic linker/loader in "ld.so.conf".                                   +'	;\
	echo '+--------------------------------------------------------------------------+';\
	fi
	@echo "test for deperties...."
	@if test -f $(MBOXHOME)/src/Makefile ; then echo '' ; \
		else echo '- You must first execute "make dep   or   make most"!' ; \
		echo ; \
		kill -9 0; fi
	@if test -f $(MBOXHOME)/src/compile.h ; then echo '' ; \
		else echo '- You must first execute "make dep   or   make most"!' ; \
		echo ; \
		kill -9 0; fi

inst:	test world  all #sort
	@echo
	@echo -n '- The BBS is going to be installed...'
	@if test -f bbs ; then install  bbs -c -g0 -o0 -ma+rxs $(BIN2)  ; fi
	@echo
	@echo Bin-Path: $(BIN2)
	@install mbrsh -c -g$(GROUP) -o$(ROOTUID) -mug+rxs $(MBOXHOME)/bin
	@install bbs.ed -c -g$(ROOTGID) -o$(ROOTUID) -ma+rxs $(MBOXHOME)/bin
	@install chat.Schrodinger/chatd -c -g$(GROUP) -o$(BBSUID) -ma+rx $(BIN2)
	@install chat.Schrodinger/chat -c -g$(GROUP) -o$(BBSUID) -ma+rx $(BIN2)
	@install ../etc/gnuzip -c -g$(GROUP) -o$(BBSUID2) -ma+rx $(BIN2)
	@install wendy/wendy -c -g$(GROUP) -o$(BBSUID) -ma+rx $(BIN2)
	@cp wendy/wendy.hlp /usr/local/lib/wendy.hlp
	@install qwkd -c -g$(GROUP) -o$(BBSUID) -ma+rx $(BIN2) 
	@install qwk.spool.src/qwk.spool -c -g$(GROUP) -o$(BBSUID) -ma+srx $(BIN2)
	@install  nntp.post/nntp.post -c -g$(GROUP) -o$(BBSUID) -ma+rx $(BIN2)
	@install  games/smiley/smiley -c -g$(GROUP) -o$(BBSUID) -ma+rx $(BIN2)
	@install  bbs.who -c -g$(ROOTGID) -o$(ROOTUID) -ma+rsx $(BIN2)
	@install  BLED/bled -c -g$(GROUP) -o$(BBSUID) -ma+rx $(BIN2)
	@install  bbs.shell -c -g$(GROUP) -o$(BBSUID) -ma+rx $(BIN2)
	@install  mk.lang.src/mk.lang -c -g$(ROOTGID) -o$(ROOTUID) -mu+rx $(BIN2)
	@install  bbsmail.spool -c -g$(GROUP) -o$(BBSUID) -ma+rx $(BIN2)
	@install  bbs.exec -c -g$(ROOTGID) -o$(ROOTUID) -ma+rxs $(BIN2)
	@cp add.newuser $(BIN2)
	@install  add.newuser -c -g$(GROUP) -o$(ROOTUID) -mgu+rxs $(BIN2)
	@cd ../bin; ln -sf lynx lynx.ncurses; 
	@install  uqwk/uqwk -c -g$(GROUP) -o$(BBSUID) -mgu+rx $(BIN2)
	@install  qwkd -c -g$(GROUP) -o$(BBSUID) -mgu+rx $(BIN2)
	@install  xmd -c -g$(ROOTGID) -o$(ROOTUID) -ma+rxs $(BIN2)
	@install  bbslogd -c -g$(ROOTGID) -o$(ROOTUID) -ma+rxs $(BIN2)
	@install  sfileman.index -c -g$(ROOTGID) -o$(ROOTUID) -ma+rx $(BIN2)
	@install  alias.update/bbs.update -c -g$(ROOTGID) -o$(ROOTUID) -ma+rxs $(BIN2)
	@install  checkit/bbs.checkit -c -g$(ROOTGID) -o$(ROOTUID) -mgu+rxs $(BIN2)
	@install  usr.list/bbs.list -c -g$(ROOTGID) -o$(ROOTUID) -mogu+rxs $(BIN2)
	@install  bbs_mail -c -g$(GROUP) -o$(BBSUID) -mgu+rx $(BIN2)
	@ln -sf $(MBOXHOME)/bin/xmd /usr/bin
	@install  convert -c -g$(GROUP) -o$(BBSUID) -mgu+rx $(BIN2)
	@chown $(BBS) $(MBOXHOME)/usr
	@chown $(BBS) $(MBOXHOME)/cdrom
	@chown $(BBS) $(MBOXHOME)/spool/qwk.task
	@chown $(BBS) $(MBOXHOME)/spool
	@mkdir -p $(MBOXHOME)/spool/mail
	@chown $(BBS) $(MBOXHOME)/spool/mail
	@chown $(BBS) $(MBOXHOME)/cdrom/sfile
	@chown $(BBS) $(MBOXHOME)/etc
	@chmod og+rx $(MBOXHOME)/etc
	@chmod ug+rw $(MBOXHOME)/etc/logout*
	@if test -f $(MBOXHOME)/src/.make.shared ; then echo 'ldconfig....' ; \
		ldconfig ../lib ;\
		else \
		echo "install static-xmd-version..."; \
		echo; fi
	@echo  'done.'
	@echo
	@echo '+-----------------------------------------------------------------------+'
	@echo '+ please config your bbs-system:                                        +'
	@echo '+   - run "~bbs/tbbs.setup",                                            +'
	@echo '+   - "bbs"-Login on "/dev/tty4" (adm-access); start "Check"-Command    +'
	@echo '+-----------------------------------------------------------------------+'


world:	test
	@if test -f /src/mb-daemon.c ; then \
		echo '- You really, really, really shouldn`t set MBOXHOME = / (root directory) !!!' ; \
		echo '- At least, you will get problems with the permissions of /etc and /lib ...' ; \
		echo '- Do copy the BBS into a subdirectoy right now ...' ; \
		echo ; \
		kill -9 0 ; fi
	@echo "test for deperties...."
	@if test -f $(MBOXHOME)/src/Makefile ; then echo '' ; \
		else echo '- You must first execute "make dep   or   make most"!' ; \
		echo ; \
		kill -9 0; fi
	@echo 'Be patient - this will take approx. 3 min. (Pentium/133MHz, 32MB-Ram), 4h (i386/20MHz, 4MB-RAM).'
	@echo
	@echo -n '- Making directories...'
	@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)/tmp ; then echo -n ''; \
		else mkdir $(MBOXHOME)/tmp ; fi
	@if test -d $(MBOXHOME)/usr.public ; then echo -n ''; \
		else mkdir $(MBOXHOME)/usr.public; chown 1002.1001 $(MBOXHOME)/usr.public; \
		chmod og-rwx $(MBOXHOME)/usr.public; chmod u+rwx $(MBOXHOME)/usr.public; fi
	@if test -d $(MBOXHOME)/lib ; then echo -n ''; \
		else mkdir $(MBOXHOME)/lib ; fi
	@if test -d $(MBOXHOME)/spool ; then echo -n ''; \
		else mkdir $(MBOXHOME)/spool ; fi
	@if test -d $(MBOXHOME)/spool/mail ; then echo -n ''; \
		else mkdir $(MBOXHOME)/spool/mail ; fi
	@if test -d $(MBOXHOME)/lib/.find ; then echo -n ''; \
		else mkdir $(MBOXHOME)/lib/.find ; fi
	@if test -d $(MBOXHOME)/lib/.thread ; then echo -n ''; \
		else mkdir $(MBOXHOME)/lib/.thread ; fi
	@if test -d $(MBOXHOME)/lib/.find/.cdrom ; then echo -n ''; \
		else mkdir $(MBOXHOME)/lib/.find/.cdrom ; 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
	@if test -d $(MBOXHOME)/cdrom ; then echo -n ''; \
		else mkdir $(MBOXHOME)/cdrom ; fi
	@if test -d $(MBOXHOME)/cdrom/sfile ; then echo -n ''; \
		else mkdir $(MBOXHOME)/cdrom/sfile ; fi
	@if test -d $(MBOXHOME)/download ; then echo -n ''; \
		else mkdir $(MBOXHOME)/download ; fi
	@if test -d $(MBOXHOME)/upload ; then echo -n ''; \
		else mkdir $(MBOXHOME)/upload ; fi
	@chmod ug+rwx $(MBOXHOME)/lib
	@chmod o-rwx $(MBOXHOME)/lib
	@chmod og+rx $(MBOXHOME)/etc
	@chmod ug+rwx $(MBOXHOME)/usr
	@chmod og-rwx $(MBOXHOME)/usr
	@chown $(BBS) $(MBOXHOME)/usr
	@chmod g+rwx $(MBOXHOME)/cdrom/sfile
	@chown $(BBS) $(MBOXHOME)/cdrom/sfile
	@chmod g+rwx $(MBOXHOME)/cdrom
	@chown $(BBS) $(MBOXHOME)/cdrom
	@chmod g+wx $(MBOXHOME)/upload
	@chown $(BBS) $(MBOXHOME)/upload
	@chown $(BBS) $(MBOXHOME)/cdrom/sfile
	@chown $(BBS) $(MBOXHOME)/cdrom
	@echo 'done.'
	@echo ''
	
clean:
	@echo ''
	@echo -n '- Old bbs-stuff is going to be deleted...'
	@rm -f *.core *.o a.out mbox mbrsh xmd mb-daemon core sysfileman \
	*index chat.deutsch chat.english chat.francais chat chatd\
	bled bled.deutsch bled.english bled.francais convert >>/dev/null
	@rm -f	Makefile .dep *~ compile.h uqwk/*~ uqwk/*.o uqwk/uqwk DEAD*\
	simtel.tools/simcvt2  simtel.tools/*.o  simtel.tools/simsrch2 test.o\
	../etc/*.LCK uqwk/Makefile bbs_mail bbsd qwkd  bbslogd sprache.h compile.h *~\
	../etc/convert bbs.shell mbox.a mbox.bin xmd.all bbs.who libbbs.a \
	../etc/spool/.checksetup bbsmail.spool xmd.test mm  *.o  nohup.out \
	sta* libb*.so* add.newuser bbs.who bbs_mail bbslogd bbs err_convert \
	*.core  core \
	mk.lang.src/mk.lang bbs.exec .make.elf .make.shared
	cd wendy; make clean
	cd BLED; make clean
	cd games/smiley; make clean
	cd chat.Schrodinger; make clean
	cd rip; make clean
	cd grafik; make clean
	cd NN; make clean
	cd nntp.post; make clean
	cd qwk.spool.src; make clean
#	cd VU; make clean
	echo >../etc/spool/.welcome
	cd alias.update; make clean
	cd checkit; make clean
	cd procs; make clean
	cd usr.list; make clean
	@echo 'done.'
	@echo ''



version.h: compile.h
	@./makever.sh
	@echo 'make version.h'
	@echo \#define PATCHLEVEL \"\pl`cat .patchlevel``cat .version` \" >> version.h
#	@echo \#define VERDATE \"\ `date +%b' '%Y`\" >> version.h
	@echo \#define VERDATE \"\ `date +%x`\" >> version.h






compile.h: 
	@echo
	@echo
	@echo 'make compile.h & sprache.h'
	@echo \#define BBS_COMPILE_TIME \"`date +%T`\" >> compile.h
	@echo \#define BBS_COMPILE_DATE \"`date +%D`\" >> compile.h
	@echo \#define BBS_COMPILE_BY \"`whoami`\" >> compile.h
	@echo \#define BBS_UNAME \"`uname -sr`\" >> compile.h
	@echo \#define BBS_COMPILE_HOST \"`hostname`\" >> compile.h
	@echo \#define $(SPRACHE)  > sprache.h


ver: 
	@sh -c ./.makecompile.sh

sver:
	@rm version.h
	@make version.h


WENDY: 
	@echo "make wendy ...."
	cd wendy; make  

PICO: 
	@echo "make pico - Editor (PINE-MAIL) ...."
	cd pico; make


#
##dep		:
#	rm -f .depend
#	make .depend
#
##.depend:
#	echo '# Program dependencies' >.depend
#	gcc -MM $(patsubst %.o,%.c,$(PROGS_O)) >>.depend
##
##include .depend
#


sort: 
	@cd ../etc/languages/msg; ./.makesort; 

sfile_a.o:	patchlevel.h
	$(CC) -c $(CFLAGS2)  sfile_a.c


stools.o:	patchlevel.h
	$(CC) -c $(CFLAGS2)  stools.c


stools2.o:	patchlevel.h
	$(CC) -c $(CFLAGS2)  stools2.c

sfind.o:	patchlevel.h
	$(CC) -c $(CFLAGS2)  sfind.c


slist.o:	patchlevel.h
	$(CC) -c $(CFLAGS2)  slist.c


dloop.o:	patchlevel.h
	$(CC) -c $(CFLAGS2)  dloop.c


sdl_list.o:	patchlevel.h
	$(CC) -c $(CFLAGS2)  sdl_list.c

sfileman.index.o:	patchlevel.h
	$(CC) -c $(CFLAGS)  sfileman.index.c



text.o:	patchlevel.h
	$(CC) -c $(CFLAGS)  smalltalk/text.c


cmd.o:	patchlevel.h
	$(CC) -c $(CFLAGS)  smalltalk/cmd.c


chat.deutsch.o:	patchlevel.h
	$(CC) -c $(CFLAGS)  chat/chat.deutsch.c

chat.english.o:	patchlevel.h
	$(CC) -c $(CFLAGS)  chat/chat.english.c

chat.francais.o: patchlevel.h
	$(CC) -c $(CFLAGS)  chat/chat.francais.c

blgetline.francais.o: patchlevel.h
	$(CC) -c $(CFLAGS)  bled/blgetline.francais.c


blgetline.english.o: patchlevel.h
	$(CC) -c $(CFLAGS)  bled/blgetline.english.c


blgetline.deutsch.o: patchlevel.h
	$(CC) -c $(CFLAGS)  bled/blgetline.deutsch.c



bltools.deutsch.o: patchlevel.h
	$(CC) -c $(CFLAGS)  bled/bltools.deutsch.c


bltools.english.o: patchlevel.h
	$(CC) -c $(CFLAGS)  bled/bltools.english.c

bltools.francais.o: patchlevel.h
	$(CC) -c $(CFLAGS)  bled/bltools.francais.c


language.o: patchlevel.h
	@if test -f $(MBOXHOME)/src/.make.shared ; then echo 'enable shared-memory-support#....' ; \
		$(CC) -c $(CFLAGS) -D_USE_SHARED_MEM  language.c ;\
		else \
		echo "disable shared-memory-support..."; \
		$(CC) -c $(CFLAGS) language.c ;\
		echo; fi




################## deperties ##################################
