########################################################################
#                                                                      #
#    *****                       *****                                 #
#      *****                   *****                                   #
#        *****               *****                                     #
#          *****           *****                                       #
#  ***************       ***************                               #
#  *****************   *****************                               #
#  ***************       ***************                               #
#          *****           *****           TheNetNode                  #
#        *****               *****         Portable                    #
#      *****                   *****       Network                     #
#    *****                       *****     Software                    #
#                                                                      #
# File makefile (maintained by: DF6LN)                                 #
#                                                                      #
# This file is part of "TheNetNode" - Software Package                 #
#                                                                      #
# Copyright (C) 1998, 1999  NORD><LINK e.V. Braunschweig               #
#                                                                      #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the NORD><LINK ALAS (Allgemeine Lizenz fuer    #
# Amateurfunk Software) as published by Hans Georg Giese (DF2AU)       #
# on 13/Oct/1992; either version 1, or (at your option) any later      #
# version.                                                             #
#                                                                      #
# This program is distributed WITHOUT ANY WARRANTY only for further    #
# development and learning purposes. See the ALAS (Allgemeine Lizenz   #
# fuer Amateurfunk Software).                                          #
#                                                                      #
# You should have received a copy of the NORD><LINK ALAS (Allgemeine   #
# Lizenz fuer Amateurfunk Software) along with this program; if not,   #
# write to NORD><LINK e.V., Hinter dem Berge 5, D-38108 Braunschweig   #
#                                                                      #
# Dieses Programm ist PUBLIC DOMAIN, mit den Einschraenkungen durch    #
# die ALAS (Allgemeine Lizenz fuer Amateurfunk Software), entweder     #
# Version 1, veroeffentlicht von Hans Georg Giese (DF2AU),             #
# am 13.Oct.1992, oder (wenn gewuenscht) jede spaetere Version.        #
#                                                                      #
# Dieses Programm wird unter Haftungsausschluss vertrieben, aus-       #
# schliesslich fuer Weiterentwicklungs- und Lehrzwecke. Naeheres       #
# koennen Sie der ALAS (Allgemeine Lizenz fuer Amateurfunk Software)   #
# entnehmen.                                                           #
#                                                                      #
# Sollte dieser Software keine ALAS (Allgemeine Lizenz fuer Amateur-   #
# funk Software) beigelegen haben, wenden Sie sich bitte an            #
# NORD><LINK e.V., Hinter dem Berge 5, D-38108 Braunschweig            #
#                                                                      #
########################################################################

#
# Makefile fuer TNN 1.77
# Zusaetzlich zur Linux-Version von TNN kann man mit diesem Makefile
# die GO32-Version uebersetzen, sowohl unter Linux als auch unter DOS
#

#
# Wo sind wir denn heut zu Hause?
#
SYSTEM	:= $(shell uname -s)
ifeq ($(SYSTEM), Linux)
SYSTEM	:= LINUX
else
SYSTEM	:= DOS
endif

#
# Source Verzeichnisse fuer Linux und Dose - Trennungszeichen immer "/",
# das wird so auch vom Dosen-Compiler verstanden
#
BIN			:= bin
DOC			:= doc
HDR			:= include
LIN			:= os/linux
GO32			:= os/go32
GO_DOS			:= os/go_dos
SRC			:= src
INI			:= $(LIN)/ini
CLEANER			:= $(BIN)/cleaner
CONTRIB			:= contrib

ifeq ($(SYSTEM), LINUX)
#
# Bei Linux gibt es auch eine Installation in das folgende Hauptverzeichnis
#
TNNDIR			:= /usr/local/tnn/
#TNNDIR			:= /var/lib/tnn/
#
# Pfad zur Initialisierungsdatei tnn.ini bei Linux
#
INSTCFG			:= $(TNNDIR)
#INSTCFG		:= /etc/tnn/
#
# Pfad zur aufuehrbaren Datei tnn (fuer Linux)
INSTBIN			:= $(TNNDIR)
#INSTBIN		:= /usr/bin
#
# Die folgenden Unterverzeichnisse zum TNN-Hauptverzeichnis sollten nicht
# geaendert werden.
#
TNNDIR			:= $(patsubst %//,%/,$(TNNDIR)/)
TNNTEXTCMD		:= $(TNNDIR)textcmd/
TNNUSEREXE		:= $(TNNDIR)userexe/
TNNSYSEXE		:= $(TNNDIR)sysexe/
TNNPACSAT		:= $(TNNDIR)pacsat/
TNNMSG			:= $(TNNDIR)msg/
#
# Ein Verteil-Archiv wird auch nur bei Linux generiert
# Der Pfad DISTDIR wird relativ zu / angegeben!
#                       ============
#
NAME			:= $(shell basename `pwd`)
DISTDIR			:= usr/local/src/tnn/$(NAME)
endif

WARNINGS		:= -Wall -Wpointer-arith -Wcast-align
WARNINGS		+= -Waggregate-return -Wstrict-prototypes

#
# Compiler
#
# Fuer Linux wird der normale Linux-GCC verwendet. Fuer die DOS/GO32-Version
# wird unter DOS das DJGPP-GCC-Paket verwendet. Unter Linux kann man die
# DOS/GO32-Version ebenfalls uebersetzen! Benoetigt wird dafuer der
# Linux -> MS-DOS GCC Cross-Compiler von J.J. van der Heijden - verfuegbar
# unter sunsite.unc.edu:/pub/Linux/devel/msdos
#
ifeq ($(SYSTEM), LINUX)
CC			:= gcc
CC_GO32			:= gcc-go32
else
CC_GO32 		:= gcc
endif

#
# Compiler-Flags
#
# VORSICHT! TNN ist nicht getestet mit eingeschalteten Optimierungen, ausser
# an den notwendigen Stellen (VANESSA). Option -O2 (oder aehnlich) also
# keinesfalls anfuegen.
#
CFLAGS			:= -funsigned-char $(WARNINGS)
# Die folgende Zeile wegkommentieren, wenn fuer 386 uebersetzt werden soll
#CFLAGS			+= -m486
# Die folgende Zeile wegkommentieren, wenn keine Debug-Info gewuenscht
CFLAGS			+= -g
ifeq ($(SYSTEM), LINUX)
CFLAGS			+= -pipe -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp
endif

CFLAGS			+= -I$(HDR) -I$(SRC)

#
# Nun haben wir die gemeinsamen Compiler-Flags fuer GO32 und fuer Linux.
# Eventuell trotz obiger Warnung eingeschaltete Optimierungen werden entfernt.
# Dazu kommen jetzt noch die Systemspezifischen Include-Verzeichnisse und fuer
# die Linux-TNN die von TNN zu verwendenden Verzeichnisse.
#
CFLAGS		:= $(subst -O ,,$(subst -O2 ,,$(subst -O3 ,,$(CFLAGS))))
CFLAGS_GO32	:= $(CFLAGS) -I$(GO_DOS)
CFLAGS_LIN	:= $(CFLAGS) -I$(LIN)
CFLAGS_LIN	+= -DINIPATH=\"$(patsubst %//,%/,$(INSTCFG)/)\"
CFLAGS_LIN	+= -DTEXTPATH=\"$(TNNDIR)\"
CFLAGS_LIN	+= -DTEXTCMDPATH=\"$(TNNTEXTCMD)\"
CFLAGS_LIN	+= -DUSEREXEPATH=\"$(TNNUSEREXE)\"
CFLAGS_LIN	+= -DSYSEXEPATH=\"$(TNNSYSEXE)\"
CFLAGS_LIN	+= -DPACSATPATH=\"$(TNNPACSAT)\"
CFLAGS_LIN	+= -DMSGPATH=\"$(TNNMSG)\"

#
# Source-, Header- und Object-Files
#
COMMONSRC		:= buffer.c callstr.c cvs_cmds.c cvs_cvsd.c cvs_serv.c
COMMONSRC		+= cvs_cvrt.c file.c global.c graph.c iproute.c
COMMONSRC		+= l2dama.c l2misc.c l2rx.c l2stma.c l2timer.c l2tx.c
COMMONSRC		+= l3a.c l3b.c l3c.c l4.c l7.c l7ccp.c l7cmds.c
COMMONSRC		+= l7conn.c l7host.c l7hstcmd.c l7ip.c l7moni.c
COMMONSRC		+= l7time.c l7utils.c main.c mh.c pacsat.c pacserv.c
VERSRC			:= $(SRC)/version.c

LINUXSRCS		:= $(patsubst %,$(SRC)/%,$(COMMONSRC))
LINUXSRCS		+= $(LIN)/init.c $(LIN)/linux.c $(LIN)/l1linux.c
LINUXSRCS		+= $(LIN)/axipx.c $(LIN)/ax25ip.c
LINUXOBJS		:= $(LINUXSRCS:.c=.o)
VANSRC			:= $(LIN)/vanlinux.c
VANOBJ			:= $(LIN)/vanlinux.o
VEROBJL			:= $(SRC)/version.o

GO32_SRCS		:= $(GO32)/api.c $(GO32)/go32.c $(GO_DOS)/16550.c
GO32_SRCS		+= $(GO_DOS)/l1.c $(patsubst %,$(SRC)/%,$(COMMONSRC))
GO32_OBJS		:= $(GO32_SRCS:.c=.obj)
GO32L1			:= $(GO_DOS)/extdev.c $(GO_DOS)/kiss.c $(GO_DOS)/loop.c
GO32L1			+= $(GO_DOS)/par.c $(GO_DOS)/scc.c $(GO_DOS)/tokenrng.c
GO32L1			+= $(GO_DOS)/vanessa.c $(HDR)/kiss.h $(HDR)/vanessa.h
VEROBJG			:= $(SRC)/version.obj

HDRNAMS			:= all.h conversd.h cvs_cmds.h function.h global.h
HDRNAMS			+= host.h icmp.h ip.h ipv.h l2.h l2s.h l3.h
HDRNAMS			+= l4.h l7.h stat.h system.h tnn.h typedef.h

LINUXHDRS		:= $(patsubst %,$(HDR)/%,$(HDRNAMS))
LINUXHDRS		+= $(LIN)/linux.h $(LIN)/vanlinux.h $(LIN)/linclude.h
GO32HDRS		:= $(patsubst %,$(HDR)/%,$(HDRNAMS)) $(HDR)/api.h 
GO32HDRS		+= $(HDR)/api32.h $(HDR)/hardware.h $(HDR)/pc.h

MAKEFILE		:= makefile
OTHER1			:= alas.txt $(SRC)/config.c $(INI)/ax25ip.cfg
OTHER1			+= $(INI)/{tnn177.tnb,tnnini.all}
OTHER1			+= $(SRC)/cleaner.c $(SRC)/update.c history/*.his
OTHER2			:= $(DOC)/{conversd.{xhf,g},tnn177.pdf}
OTHER2			+= $(DOC)/{tnnlinux,ipxaxip}.doc
OTHER2			+= $(CONTRIB)/makefile

.SUFFIXES:
.SILENT:
.EXPORT_ALL_VARIABLES:

.PHONY:			all tnn upd tnngo32 updgo32 clean cleaner

%.o:			%.c $(MAKEFILE) $(CLEANER)
			echo $@
			$(CLEANER) $<
			$(CC) -c $(CFLAGS_LIN) -o $@ $<

%.obj:			%.c $(MAKEFILE) $(CLEANER)
			echo $@
			$(CLEANER) $<
			$(CC_GO32) -c $(CFLAGS_GO32) -o $@ $<

all:			tnn upd

$(LINUXOBJS):		$(LINUXHDRS) $(MAKEFILE)
$(VEROBJL):		$(VERSRC) $(LINUXOBJS) $(VANOBJ)
$(VEROBJG):		$(VERSRC) $(GO32_OBJS)
$(GO32_OBJS):		$(GO32HDRS) $(MAKEFILE)
$(SRC)/global.o:	$(SRC)/config.c
$(SRC)/global.obj:	$(SRC)/config.c
$(GO_DOS)/l1.obj:	$(GO32L1)

cleaner:		$(CLEANER)
tnngo32:		$(BIN)/tnngo32

ifeq ($(SYSTEM), LINUX)
#
# erstmal kommt Linux
#
.PHONY:		mindist dist bigdist install baseinstall
.PHONY:		go32 _dist _mindist _install

tnn:		$(BIN)/tnn
go32:		tnngo32 updgo32
upd:		$(BIN)/upd
updgo32:	$(BIN)/updgo32

$(VANOBJ):	$(MAKEFILE) $(CLEANER)
$(VANOBJ):	$(VANSRC) $(LIN)/vanlinux.h $(LINUXHDRS)
		echo $@
		$(CLEANER) $(VANSRC) $(LIN)/vanlinux.h
		$(CC) -c -O2 $(CFLAGS_LIN) -o $@ $(VANSRC)

$(BIN)/tnn:	$(LINUXOBJS) $(VANOBJ) $(VEROBJL) $(CLEANER)
		$(CLEANER) $(LINUXHDRS)
		$(CC) $(LINUXOBJS) $(VANOBJ) $(VEROBJL) -o $@
		sync
		echo $@ done.

$(CLEANER):	$(SRC)/cleaner.c $(LINUXHDRS) $(MAKEFILE)
ifneq ($(BIN),$(wildcard $(BIN)))
		echo $(BIN)
		- mkdir $(BIN)
endif
		$(CC) $(CFLAGS_LIN) $(SRC)/cleaner.c -o $@
		sync
		echo $@ done.

$(BIN)/tnngo32:	$(GO32_OBJS) $(VEROBJG) $(CLEANER)
		$(CLEANER) $(GO32HDRS)
		$(CC_GO32) $(GO32_OBJS) $(VEROBJG) -o $@
		chmod 644 $@
		sync
		echo $@ done.

$(BIN)/upd:	$(SRC)/update.c $(LINUXHDRS) $(MAKEFILE)
ifneq ($(BIN),$(wildcard $(BIN)))
		echo $(BIN)
		- mkdir $(BIN)
endif
		$(CC) $(CFLAGS_LIN) $(SRC)/update.c -o $@
		sync
		echo $@ done.

$(BIN)/updgo32:	$(SRC)/update.c $(GO32HDRS) $(MAKEFILE)
ifneq ($(BIN),$(wildcard $(BIN)))
		echo $(BIN)
		- mkdir $(BIN)
endif
		$(CC_GO32) $(CFLAGS_GO32) $(SRC)/update.c -o $@
		chmod 644 $@
		sync
		echo $@ done.

clean:
		rm -f $(LINUXOBJS) $(VANOBJ) $(GO32_OBJS) $(VEROBJL) $(VEROBJG)
		rm -f $(NAME).tar.bz2 .macros
		rm -f {.,$(SRC),$(LIN),$(INI),$(GO_DOS),$(HDR),$(DOC)}/*~
		rm -f {$(GO32),history}/*~
		rm -f $(BIN)/{cleaner,{upd,tnn}{,go32{,.exe}}}
ifeq ("$(findstring 177,$(shell pwd))","177")
		rm -rf usr
endif

TNNINI		:= $(INI)/tnn.ini
TNNPAS		:= $(INI)/tnn177.pas
#
# Mit "make mindist" wird der Source verpackt, soweit zum uebersetzen noetig,
# mit "make dist" wird zusaetzlich die Doku verpackt und mit "make bigdist"
# sind auch die Teile im Verzeichnis contrib/ dabei. Hier ist allerdings kein
# Unterschied zu sehen zwischen "dist" und "bigdist", sondern nur in
# contrib/*/makefile.
#
dist bigdist:	_mindist
ifeq ("$(findstring 177,$(shell pwd))","177")
		cp -P $(OTHER2) $(DISTDIR)
		tar -cf $(NAME).tar $(DISTDIR)
		bzip2 $(NAME).tar
		rm -rf usr
else
		echo Invalid Directory Name.
endif

mindist:	_mindist
ifeq ("$(findstring 177,$(shell pwd))","177")
		tar -cf $(NAME).tar $(DISTDIR)
		bzip2 $(NAME).tar
		rm -rf usr
else
		echo Invalid Directory Name.
endif

_mindist:	_dist $(TNNINI) $(TNNPAS)
		cp -P $(LINUXSRCS) $(LINUXHDRS) $(VANSRC) $(DISTDIR)
		cp -P $(GO32_SRCS) $(GO32HDRS) $(GO32L1) $(DISTDIR)
		cp -P $(VERSRC) $(MAKEFILE) $(DISTDIR)
		cp -P $(OTHER1) $(DISTDIR)

_dist:
ifeq ("$(findstring 177,$(shell pwd))","177")
		rm -rf usr $(NAME).tar.bz2
		mkdir -p $(DISTDIR)
else
		echo Invalid Directory Name.
endif
#
# install nur fuer Linux-Version - GO32-Version muss von Hand kopiert werden
#
install:	_install all
		install -m 0700 $(BIN)/tnn $(INSTBIN)/tnn

_install:
		install -m 0700 -d $(TNNDIR)
		install -m 0700 -d $(TNNSYSEXE)
		install -m 0700 -d $(TNNTEXTCMD)
		install -m 0700 -d $(TNNUSEREXE)
		install -m 0700 -d $(TNNPACSAT)
		install -m 0700 -d $(TNNMSG)

baseinstall:	install $(TNNINI) $(TNNPAS)
		install -m 0700 -d $(INSTCFG)
		install -m 0600 $(TNNINI) $(INSTCFG)/tnn.ini
		install -m 0600 $(INI)/ax25ip.cfg $(TNNDIR)/ax25ip.cfg
		install -m 0600 $(TNNPAS) $(TNNDIR)/tnn177.pas
		install -m 0600 $(INI)/tnn177.tnb $(TNNDIR)/tnn177.tnb

$(TNNINI):	$(MAKEFILE)
	echo $@
	echo "# Working directory for TNN" >$(TNNINI)
	echo "#tnn_dir $(TNNDIR)" >>$(TNNINI)
	echo "# Unix-Socket for TNT hostmode interface (optional)" >>$(TNNINI)
	echo "#tnn_socket $(TNNDIR)tnn-socket" >>$(TNNINI)
	echo "# Program to start before using any hardware ports" >>$(TNNINI)
	echo "# (optional) - don't use any parameters!" >>$(TNNINI)
	echo "#tnn_start kill_other_processes" >>$(TNNINI)
	echo "# Number of buffers (optional; default = 10000)" >>$(TNNINI)
	echo "buffers 10000" >>$(TNNINI)
	echo "# file containing process id (mandatory)" >>$(TNNINI)
	echo "tnn_procfile tnn.pid" >>$(TNNINI)
	echo "#-------------------------------------------------" >>$(TNNINI)
	echo "# device 1" >>$(TNNINI)
	echo "device /dev/ttyS0" >>$(TNNINI)
	echo "# lockfile for device 1" >>$(TNNINI)
	echo "tnn_lockfile /var/lock/LCK..ttyS0" >>$(TNNINI)
	echo "# speed on device 1" >>$(TNNINI)
	echo "speed 38400" >>$(TNNINI)
	echo "# type of KISS on device 1:" >>$(TNNINI)
	echo "# 0 = KISS, 1 = SMACK, 2 = RMNC-KISS," >>$(TNNINI)
	echo "# 3 = Tokenring (1st device only)," >>$(TNNINI)
	echo "# 4 = Vanessa, 5 = SCC, 6 = TF (experimental!)," >>$(TNNINI)
	echo "# 7 = IPX (1 IPX port only)," >>$(TNNINI)
	echo "# 8 = AX25IP (1 AX25IP port only)" >>$(TNNINI)
	echo "kisstype 3" >>$(TNNINI)
	echo "# L2-Port associated with device 1" >>$(TNNINI)
	echo "# use several port lines, if kisstype = 3" >>$(TNNINI)
	echo "port 0" >>$(TNNINI)
	echo "port 1" >>$(TNNINI)
	echo "port 2" >>$(TNNINI)
	echo "port 3" >>$(TNNINI)
	echo "port 4" >>$(TNNINI)
	echo "port 5" >>$(TNNINI)
	echo "port 6" >>$(TNNINI)
	echo "port 7" >>$(TNNINI)
	echo "port 8" >>$(TNNINI)
	echo "port 9" >>$(TNNINI)
	echo "port 10" >>$(TNNINI)
	echo "port 11" >>$(TNNINI)
	echo "port 12" >>$(TNNINI)
	echo "port 13" >>$(TNNINI)
	echo "port 14" >>$(TNNINI)
	echo "port 15" >>$(TNNINI)
	echo "#-------------------------------------------------" >>$(TNNINI)
	echo "# device 2" >>$(TNNINI)
	echo "#device /dev/ttyS1" >>$(TNNINI)
	echo "# lockfile for device 2" >>$(TNNINI)
	echo "#tnn_lockfile /var/lock/LCK..ttyS1" >>$(TNNINI)
	echo "# speed on device 2" >>$(TNNINI)
	echo "#speed 38400" >>$(TNNINI)
	echo "# type of KISS on device 2:" >>$(TNNINI)
	echo "# 0 = KISS, 1 = SMACK, 2 = RMNC-KISS," >>$(TNNINI)
	echo "# 4 = Vanessa, 5 = SCC, 6 = TF (experimental!)," >>$(TNNINI)
	echo "# 7 = IPX (1 IPX port only)," >>$(TNNINI)
	echo "# 8 = AX25IP (1 AX25IP port only)" >>$(TNNINI)
	echo "#kisstype 1" >>$(TNNINI)
	echo "# L2-Port associated with device 2" >>$(TNNINI)
	echo "#port 1" >>$(TNNINI)

$(TNNPAS):	$(MAKEFILE)
	echo $@
	echo "; TheNetNode Configuration File" >$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; DO NOT CHANGE THE ORDER OF THE CONFIGURATION LINES !" >>$(TNNPAS)
	echo "; DO NOT CLEAR ANY LINES !" >>$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; NET/ROM-Sysop-Password, 80 Characters (01234567890123...)" >>$(TNNPAS)
	echo -n "1234567890123456789012345678901234567890" >>$(TNNPAS)
	echo    "1234567890123456789012345678901234567890" >>$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; Console Password" >>$(TNNPAS)
	echo "Geheim" >>$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; Node Ident (Test)" >>$(TNNPAS)
	echo "Test  " >>$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; Node MyCall (XX0XX)" >>$(TNNPAS)
	echo "XX0XX" >>$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; Workpath, Path to the Help-Files ($(TNNDIR))" >>$(TNNPAS)
	echo "; TNN should be started from this path." >>$(TNNPAS)
	echo "$(TNNDIR)" >>$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; Path to the executable Text-Files ($(TNNTEXTCMD))" >>$(TNNPAS)
	echo "$(TNNTEXTCMD)" >>$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; Path to the extern Programs for User ($(TNNUSEREXE))" >>$(TNNPAS)
	echo "$(TNNUSEREXE)" >>$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; Path to the extern Programs only for Sysop ($(TNNSYSEXE))" >>$(TNNPAS)
	echo "$(TNNSYSEXE)" >>$(TNNPAS)
	echo ";" >>$(TNNPAS)
	echo "; Path to the PACSAT-Files ($(TNNPACSAT))" >>$(TNNPAS)
	echo "$(TNNPACSAT)" >>$(TNNPAS)

mac:
		$(CC) $(CFLAGS_LIN) -E -dM $(HDR)/tnn.h > .macros

else
#
# nun kommt Dose
#
tnn:			tnngo32
upd:			$(BIN)/updgo32

clean:
			erase $(subst /,\\,$(BIN))\*
			erase $(subst /,\\,$(BIN))\*.exe
			erase $(subst /,\\,$(SRC))\*.o*
			erase $(subst /,\\,$(SRC))\*.bak
			erase $(subst /,\\,$(GO32))\*.o*
			erase $(subst /,\\,$(GO32))\*.bak
			erase $(subst /,\\,$(DOC))\*.bak
			erase $(subst /,\\,$(INCLUDE))\*.bak
			erase $(subst /,\\,$(HISTORY))\*.bak

$(BIN)/tnngo32:		$(GO32_OBJS) $(VEROBJG) $(CLEANER)
			$(CLEANER) $(GO32HDRS)
			$(CC_GO32) $(GO32_OBJS) $(VEROBJG) -o $@
			echo $@ done.

$(CLEANER):		$(SRC)/cleaner.c $(GO32HDRS) $(MAKEFILE)
ifneq ($(BIN),$(wildcard $(BIN)))
			echo $(BIN)
			- mkdir $(subst /,\\,$(BIN))
endif
			$(CC) $(CFLAGS_GO32) $(SRC)/cleaner.c -o $@
			echo $@ done.

$(BIN)/updgo32:		$(SRC)/update.c $(GO32HDRS) $(MAKEFILE)
ifneq ($(BIN),$(wildcard $(BIN)))
			echo $(BIN)
			- mkdir $(subst /,\\,$(BIN))
endif
			$(CC) $(CFLAGS_GO32) $(SRC)/update.c -o $@
			echo $@ done.

endif
#
# Die Makefiles in contrib/* sollen auch noch verarbeitet
# werden (wenn vorhanden)
#
MF			:= $(wildcard contrib/*/makefile)
ifneq ($(strip $(MF)),)
include $(MF)
endif
