611 lines
21 KiB
Makefile
611 lines
21 KiB
Makefile
|
########################################################################
|
||
|
# #
|
||
|
# ***** ***** #
|
||
|
# ***** ***** #
|
||
|
# ***** ***** #
|
||
|
# ***** ***** #
|
||
|
# *************** *************** #
|
||
|
# ***************** ***************** #
|
||
|
# *************** *************** #
|
||
|
# ***** ***** TheNetNode #
|
||
|
# ***** ***** Portable #
|
||
|
# ***** ***** Network #
|
||
|
# ***** ***** Software #
|
||
|
# #
|
||
|
# File makefile (maintained by: DF6LN) #
|
||
|
# #
|
||
|
# This file is part of "TheNetNode" - Software Package #
|
||
|
# #
|
||
|
# Copyright (C) 1998 - 2006 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.79
|
||
|
# Zusaetzlich zur Linux-Version von TNN kann man mit diesem Makefile
|
||
|
# die GO32-Version uebersetzen, sowohl unter Linux als auch unter DOS.
|
||
|
# Weiterhin wird unter Linux die Crosscompilierung unterstuetzt.
|
||
|
#
|
||
|
|
||
|
#
|
||
|
# Wo sind wir denn heut zu Hause?
|
||
|
#
|
||
|
UNAME := $(wildcard /bin/uname)
|
||
|
ifneq ($(strip $(UNAME)),)
|
||
|
SYSTEM := $(shell uname -s)
|
||
|
endif
|
||
|
#
|
||
|
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
|
||
|
SRC := src
|
||
|
INI := $(LIN)/ini
|
||
|
CLEANER := $(BIN)/cleaner
|
||
|
CONTRIB := contrib
|
||
|
|
||
|
ifeq ($(SYSTEM), LINUX)
|
||
|
#
|
||
|
# Irgendeine besondere (Ziel-)Maschine ?
|
||
|
#
|
||
|
ifeq ($(MIPS),)
|
||
|
MIPS := $(shell uname -m)
|
||
|
endif
|
||
|
#
|
||
|
ifeq ($(MIPS), mips)
|
||
|
MIPS := YES
|
||
|
else
|
||
|
MIPS := NO
|
||
|
endif
|
||
|
#
|
||
|
# 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
|
||
|
WARNINGS += -Wimplicit-function-declaration
|
||
|
|
||
|
#
|
||
|
# 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)
|
||
|
#
|
||
|
# Der native gcc dieser Architektur, er wird fuer die Uebersetzung des
|
||
|
# Cleaners benoetigt, da dieser beim Crosscompilieren nicht fuer das Zielsystem,
|
||
|
# sondern fuer den Host compiliert werden muss !
|
||
|
#
|
||
|
HOSTCC := gcc
|
||
|
#
|
||
|
# Der zum Uebersetzen genutzte Compiler kann beim make-Aufruf uebersteuert werden
|
||
|
# (make CC=gcc-foobar). Ist CC nicht definiert, dann nehmen wir den gcc des Host.
|
||
|
#
|
||
|
#
|
||
|
ifeq ($(CC), "")
|
||
|
CC := gcc
|
||
|
endif
|
||
|
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)
|
||
|
# Wegkommentieren, wenn fuer Pentium uebersetzt werden soll
|
||
|
# CFLAGS += -mcpu=pentium
|
||
|
# Die folgende Zeile wegkommentieren, wenn fuer 386 uebersetzt werden soll
|
||
|
# CFLAGS += -m386
|
||
|
# Fuer ganz mutige : Compiler-Optimierungen einschalten (siehe oben !!!)
|
||
|
# CFLAGS += -O2
|
||
|
# Die folgende Zeile kommentieren, wenn keine Debugsymbole gewuenscht sind.
|
||
|
# Noch mehr Debug gibt es mit -g3, weniger mit -g1, -g entspricht -g2. (Linux)
|
||
|
CFLAGS += -g
|
||
|
ifeq ($(SYSTEM), LINUX)
|
||
|
CFLAGS += -pipe -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp
|
||
|
#CFLAGS += -pedantic
|
||
|
#CFLAGS += -O
|
||
|
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$(GO32)
|
||
|
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)\"
|
||
|
|
||
|
# MIPS-Systeme bekommen noch ein besonderes Kennzeichen
|
||
|
ifeq ($(MIPS), YES)
|
||
|
CFLAGS_LIN += -DMIPS=$(MIPS)
|
||
|
endif
|
||
|
|
||
|
#
|
||
|
# Source-, Header- und Object-Files
|
||
|
#
|
||
|
L3SRC := l3inp.c l3misc.c l3nbr.c l3netrom.c l3thenet.c
|
||
|
L3SRC += l3rtt.c l3tab.c l3var.c l3vc.c
|
||
|
L3TCP += l3sock.c l3tcp.c l1tcpip.c l1telnet.c l1httpd.c l1ipconv.c l1irc.c
|
||
|
COMMONSRC := buffer.c callstr.c cvs_cmds.c cvs_cvsd.c cvs_serv.c
|
||
|
COMMONSRC += cvs_cvrt.c file.c global.c graph.c
|
||
|
COMMONSRC += l2dama.c l2misc.c l2rx.c l2stma.c l2timer.c l2tx.c
|
||
|
COMMONSRC += l3ip.c $(L3SRC) $(L3TCP) l4.c l7.c l7ccp.c l7cmds.c
|
||
|
COMMONSRC += l7conn.c l7host.c l7hstcmd.c l7ip.c l7moni.c
|
||
|
COMMONSRC += l7showl3.c l7time.c l7utils.c main.c mh.c
|
||
|
COMMONSRC += pacsat.c pacserv.c profil.c profiler.c speech.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 $(LIN)/kernelip.c
|
||
|
LINUXSRCS += $(LIN)/kernelax.c $(LIN)/6pack.c
|
||
|
LINUXSRCS += $(LIN)/l1attach.c $(LIN)/ostcpip.c $(LIN)/osipconv.c
|
||
|
LINUXOBJS := $(LINUXSRCS:.c=.o)
|
||
|
VANSRC := $(LIN)/vanlinux.c
|
||
|
VANOBJ := $(LIN)/vanlinux.o
|
||
|
VEROBJL := $(SRC)/version.o
|
||
|
L3SRCS := $(patsubst %,$(SRC)/%,$(L3SRC))
|
||
|
L3OBJL := $(L3SRCS:.c=.o)
|
||
|
|
||
|
GO32_SRCS := $(GO32)/api.c $(GO32)/go32.c $(GO32)/16550.c
|
||
|
GO32_SRCS += $(GO32)/l1.c $(patsubst %,$(SRC)/%,$(COMMONSRC))
|
||
|
GO32_OBJS := $(GO32_SRCS:.c=.obj)
|
||
|
GO32L1 := $(GO32)/extdev.c $(GO32)/kiss.c $(GO32)/loop.c
|
||
|
GO32L1 += $(GO32)/par.c $(GO32)/scc.c $(GO32)/tokenrng.c
|
||
|
GO32L1 += $(GO32)/vanessa.c $(GO32)/kiss.h $(GO32)/vanessa.h
|
||
|
VEROBJG := $(SRC)/version.obj
|
||
|
L3OBJG := $(L3SRCS:.c=.obj)
|
||
|
|
||
|
HDRNAMS := all.h allmodif.h conversd.h cvs_cmds.h
|
||
|
HDRNAMS += function.h global.h host.h icmp.h ip.h ipv.h l2.h l2s.h
|
||
|
HDRNAMS += l3sock.h l3tcp.h l1httpd.h l1tcpip.h l1telnet.h
|
||
|
HDRNAMS += l3global.h l3thenet.h l4.h l7.h profil.h profiler.h stat.h
|
||
|
HDRNAMS += system.h speech.h tnn.h typedef.h
|
||
|
|
||
|
LINUXHDRS := $(patsubst %,$(HDR)/%,$(HDRNAMS))
|
||
|
LINUXHDRS += $(LIN)/linux.h $(LIN)/vanlinux.h $(LIN)/linclude.h
|
||
|
LINUXHDRS += $(LIN)/kernelip.h $(LIN)/kernelax.h $(LIN)/ax25ip.h
|
||
|
GO32HDRS := $(patsubst %,$(HDR)/%,$(HDRNAMS)) $(GO32)/api.h
|
||
|
GO32HDRS += $(GO32)/api32.h $(GO32)/hardware.h $(GO32)/pc.h
|
||
|
L3HDR := $(HDR)/l3local.h
|
||
|
|
||
|
MAKEFILE := makefile
|
||
|
OTHER1 := alas.txt $(SRC)/config.c $(INI)/ax25ip.cfg
|
||
|
OTHER1 += $(INI)/{tnn179.tnb,tnnini.all} $(L3HDR)
|
||
|
OTHER1 += $(SRC)/cleaner.c $(SRC)/update.c history/*.his
|
||
|
OTHER2 := $(DOC)/{conversd.{xhf,g},tnn179.pdf}
|
||
|
OTHER2 += $(CONTRIB)/makefile
|
||
|
|
||
|
.SUFFIXES:
|
||
|
.SILENT:
|
||
|
.EXPORT_ALL_VARIABLES:
|
||
|
|
||
|
.PHONY: all tnn upd tnngo32 updgo32 clean cleaner
|
||
|
.PHONY: mindist dist bigdist install baseinstall
|
||
|
|
||
|
%.o: %.c $(MAKEFILE) $(CLEANER)
|
||
|
echo -n 'Compiling $@ '
|
||
|
$(CLEANER) $<
|
||
|
$(CC) -c $(CFLAGS_LIN) -o $@ $<
|
||
|
echo done.
|
||
|
|
||
|
%.obj: %.c $(MAKEFILE) $(CLEANER)
|
||
|
echo -n 'Compiling $@ '
|
||
|
$(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
|
||
|
$(GO32)/l1.obj: $(GO32L1)
|
||
|
$(L3OBJL) $(L3OBJG): $(L3HDR)
|
||
|
|
||
|
cleaner: $(CLEANER)
|
||
|
tnngo32: $(BIN)/tnngo32
|
||
|
|
||
|
ifeq ($(SYSTEM), LINUX)
|
||
|
#
|
||
|
# erstmal kommt Linux
|
||
|
#
|
||
|
|
||
|
# externe Libs
|
||
|
LIB := -lutil
|
||
|
|
||
|
.PHONY: go32 _dist _mindist _install
|
||
|
|
||
|
tnn: $(BIN)/tnn
|
||
|
go32: tnngo32 updgo32
|
||
|
upd: $(BIN)/upd
|
||
|
updgo32: $(BIN)/updgo32
|
||
|
|
||
|
# bin-Verzeichnis erstellen
|
||
|
$(BIN):
|
||
|
ifneq ($(wildcard $(BIN)), $(BIN))
|
||
|
echo Creating directory $(BIN)
|
||
|
- mkdir $(BIN)
|
||
|
endif
|
||
|
|
||
|
# Linux VANESSA Treiber
|
||
|
$(VANOBJ): $(MAKEFILE) $(CLEANER)
|
||
|
$(VANOBJ): $(VANSRC) $(LIN)/vanlinux.h $(LINUXHDRS)
|
||
|
echo -n 'Compiling $@ '
|
||
|
$(CLEANER) $(VANSRC) $(LIN)/vanlinux.h
|
||
|
$(CC) -c -O2 $(CFLAGS_LIN) -o $@ $(VANSRC)
|
||
|
echo done.
|
||
|
|
||
|
# TNN-Executable linken
|
||
|
$(BIN)/tnn: $(LINUXOBJS) $(VANOBJ) $(VEROBJL) $(CLEANER)
|
||
|
echo -n 'Linking $@ '
|
||
|
$(CLEANER) $(LINUXHDRS)
|
||
|
$(CC) $(LINUXOBJS) $(VANOBJ) $(VEROBJL) $(LDFLAGS_LIN) $(LIB) -o $@
|
||
|
echo done.
|
||
|
|
||
|
# Sourcecode-Cleaner
|
||
|
$(CLEANER): $(SRC)/cleaner.c $(LINUXHDRS) $(MAKEFILE)
|
||
|
ifneq ($(wildcard $(BIN)), $(BIN))
|
||
|
echo Creating directory $(BIN)
|
||
|
- mkdir $(BIN)
|
||
|
endif
|
||
|
echo -n 'Building $@ '
|
||
|
$(HOSTCC) $(CFLAGS_LIN) $(SRC)/cleaner.c $(LDFLAGS_LIN) -o $@
|
||
|
echo done.
|
||
|
|
||
|
# TNN GO32
|
||
|
$(BIN)/tnngo32: $(GO32_OBJS) $(VEROBJG) $(CLEANER)
|
||
|
$(CLEANER) $(GO32HDRS)
|
||
|
$(CC_GO32) $(GO32_OBJS) $(VEROBJG) -o $@
|
||
|
chmod 644 $@
|
||
|
echo $@ done.
|
||
|
|
||
|
# Updater
|
||
|
$(BIN)/upd: $(BIN) $(SRC)/update.c $(LINUXHDRS) $(MAKEFILE)
|
||
|
$(CC) $(CFLAGS_LIN) $(SRC)/update.c $(LDFLAGS_LIN) -o $@
|
||
|
echo $@ done.
|
||
|
|
||
|
# Updater fuer GO32
|
||
|
$(BIN)/updgo32: $(BIN) $(SRC)/update.c $(GO32HDRS) $(MAKEFILE)
|
||
|
$(CC_GO32) $(CFLAGS_GO32) $(SRC)/update.c -o $@
|
||
|
chmod 644 $@
|
||
|
echo $@ done.
|
||
|
|
||
|
# Aufraeumen
|
||
|
clean:
|
||
|
rm -f $(LINUXOBJS) $(VANOBJ) $(GO32_OBJS) $(VEROBJL) $(VEROBJG)
|
||
|
rm -f $(NAME).tar.bz2 .macros
|
||
|
rm -f {.,$(SRC),$(LIN),$(INI),$(GO32),$(HDR),$(DOC)}/*~
|
||
|
rm -f {$(GO32),history}/*~
|
||
|
rm -f $(BIN)/{cleaner,{upd,tnn}{,go32{,.exe}}}
|
||
|
rm -rf bin
|
||
|
ifeq ("$(findstring 179,$(shell pwd))","179")
|
||
|
rm -rf usr
|
||
|
endif
|
||
|
|
||
|
TNNINI := $(INI)/tnn.ini
|
||
|
TNNPAS := $(INI)/tnn179.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 179,$(shell pwd))","179")
|
||
|
cp --parents $(OTHER2) $(DISTDIR)
|
||
|
echo $(NAME).tar.bz2
|
||
|
tar -cf $(NAME).tar $(DISTDIR)
|
||
|
bzip2 $(NAME).tar
|
||
|
rm -rf usr
|
||
|
else
|
||
|
echo Invalid Directory Name.
|
||
|
endif
|
||
|
|
||
|
mindist: _mindist
|
||
|
ifeq ("$(findstring 179,$(shell pwd))","179")
|
||
|
echo $(NAME).tar.bz2
|
||
|
tar -cf $(NAME).tar $(DISTDIR)
|
||
|
bzip2 $(NAME).tar
|
||
|
rm -rf usr
|
||
|
else
|
||
|
echo Invalid Directory Name.
|
||
|
endif
|
||
|
|
||
|
_mindist: _dist $(TNNINI) $(TNNPAS)
|
||
|
cp --parents $(LINUXSRCS) $(LINUXHDRS) $(VANSRC) $(DISTDIR)
|
||
|
cp --parents $(GO32_SRCS) $(GO32HDRS) $(GO32L1) $(DISTDIR)
|
||
|
cp --parents $(VERSRC) $(MAKEFILE) $(DISTDIR)
|
||
|
cp --parents $(OTHER1) $(DISTDIR)
|
||
|
|
||
|
_dist:
|
||
|
ifeq ("$(findstring 179,$(shell pwd))","179")
|
||
|
rm -rf usr $(NAME).tar.bz2
|
||
|
mkdir --parents $(DISTDIR)
|
||
|
else
|
||
|
echo Invalid Directory Name.
|
||
|
endif
|
||
|
#
|
||
|
# install nur fuer Linux-Version - GO32-Version muss von Hand kopiert werden
|
||
|
#
|
||
|
install: all _install
|
||
|
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)/tnnini.all $(TNNDIR)/tnnini.all
|
||
|
install -m 0600 $(INI)/ax25ip.cfg $(TNNDIR)/ax25ip.cfg
|
||
|
install -m 0600 $(TNNPAS) $(TNNDIR)/tnn179.pas
|
||
|
install -m 0600 $(INI)/tnn179.tnb $(TNNDIR)/tnn179.tnb
|
||
|
install -m 0600 $(DOC)/conversd.xhf $(TNNDIR)/conversd.xhf
|
||
|
|
||
|
$(TNNINI): $(MAKEFILE)
|
||
|
echo $@
|
||
|
echo "# This is an example for a tnn.ini-file" >$(TNNINI)
|
||
|
echo "# For a more comprehensive example see tnnini.all" >$(TNNINI)
|
||
|
echo "# -----------------------------------------------" >$(TNNINI)
|
||
|
echo "# File permissions for files created by TNN" >$(TNNINI)
|
||
|
echo "# octal value as used by umask(2)" >>$(TNNINI)
|
||
|
echo "# default value = 000 (world readable/writable)" >>$(TNNINI)
|
||
|
echo "# use 077 to limit access to the owner of TNN" >>$(TNNINI)
|
||
|
echo "#perms 077" >>$(TNNINI)
|
||
|
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 "# rounds per second (if missing, default 100)" >>$(TNNINI)
|
||
|
echo "#rounds 200" >>$(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 "# 10 = Kernel-AX.25, 11 = DG1KJD Kernel-AX.25" >>$(TNNINI)
|
||
|
echo "# 12 = 6PACK" >>$(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 "# 10 = Kernel-AX.25, 11 = DG1KJD Kernel-AX.25" >>$(TNNINI)
|
||
|
echo "# 12 = 6PACK" >>$(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
|
||
|
|
||
|
$(BIN):
|
||
|
ifneq ($(wildcard $(BIN)), $(BIN))
|
||
|
echo $(BIN)
|
||
|
- mkdir $(subst /,\\,$(BIN))
|
||
|
endif
|
||
|
|
||
|
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 ($(wildcard $(BIN)), $(BIN))
|
||
|
echo $(BIN)
|
||
|
- mkdir $(BIN)
|
||
|
endif
|
||
|
$(CC) $(CFLAGS_GO32) $(SRC)/cleaner.c -o $@
|
||
|
echo $@ done.
|
||
|
|
||
|
$(BIN)/updgo32: $(BIN) $(SRC)/update.c $(GO32HDRS) $(MAKEFILE)
|
||
|
$(CC) $(CFLAGS_GO32) $(SRC)/update.c -o $@
|
||
|
echo $@ done.
|
||
|
|
||
|
mindist dist bigdist install baseinstall:
|
||
|
echo Please update your Operating System.
|
||
|
echo The target $@ is only valid for Linux.
|
||
|
|
||
|
endif
|
||
|
#
|
||
|
# Die Makefiles in contrib/* sollen auch noch verarbeitet
|
||
|
# werden (wenn vorhanden)
|
||
|
#
|
||
|
MF := $(wildcard contrib/*/makefile)
|
||
|
ifneq ($(strip $(MF)),)
|
||
|
include $(MF)
|
||
|
endif
|