157 lines
7.2 KiB
Makefile
Executable file
157 lines
7.2 KiB
Makefile
Executable file
########################################################################
|
|
# #
|
|
# ***** ***** #
|
|
# ***** ***** #
|
|
# ***** ***** #
|
|
# ***** ***** #
|
|
# *************** *************** #
|
|
# ***************** ***************** #
|
|
# *************** *************** #
|
|
# ***** ***** TheNetNode #
|
|
# ***** ***** Portable #
|
|
# ***** ***** Network #
|
|
# ***** ***** Software #
|
|
# #
|
|
# File contrib/makefile (maintained by: DF6LN) #
|
|
# #
|
|
# Copyright (C) 1998 - 2004 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 #
|
|
# #
|
|
########################################################################
|
|
|
|
#
|
|
# Geruest fuer ein makefile in contrib/programmname mit dem das Programm
|
|
# "prg" uebersetzt werden soll, das im TNN-Unterverzeichnis userexe laufen
|
|
# soll.
|
|
#
|
|
# Das Programm soll grundsaetzlich in das Verzeichnis $(BIN) uebersetzt
|
|
# werden. Die in den anderen Makefiles verwendeten Targets duerfen nicht
|
|
# noch einmal verwendet werden. Daher werden fuer "clean", "dist", etc.
|
|
# jeweils zusaetzliche abhaengige Targets definiert, unter denen dann die
|
|
# tatsaechliche Ausfuehrung stattfindet. Folgende Targets sollten
|
|
# beruecksichtigt werden:
|
|
#
|
|
# prg - (ist durch den Programmnamen zu ersetzen) uebersetzen des
|
|
# Programms in das Verzeichnis $(BIN). Evtl. zusaetzlich
|
|
# generierte Dateien sollten im Verzeichnis des Programms
|
|
# bleiben (contrib/programmname). Das Programm kann fuer LINUX
|
|
# und / oder GO32 uebersetzt werden, oder auch fuer GO32 unter
|
|
# DOS.
|
|
#
|
|
# all - hier wird prg zusaetzlich eingetragen, so dass es bei einem
|
|
# Befehl "make" ohne zusaetzliche Parameter mit uebersetzt
|
|
# wird.
|
|
#
|
|
# clean - loeschen des compilierten Programms in $(BIN) und aller
|
|
# anderen mit den normalen Libraries neu generierbaren Files.
|
|
# Wenn spezielle Libraries benoetigt werden (z.b. von p2c),
|
|
# sind besondere Massnahmen zu ueberlegen, damit nicht etwas
|
|
# falsches geloescht wird (s. contrib/onlhelp/makefile).
|
|
#
|
|
# bigdist - (nur bei Linux) kopieren der fuer das Uebersetzen des
|
|
# Programms benoetigten Dateien in das Verzeichnis
|
|
# $(DISTDIR)/contrib/programmname - dazu gehoeren die *.c und
|
|
# *.h Dateien sowie das Makefile und evtl. weitere Dateien wie
|
|
# z.B. Hilfetexte.
|
|
#
|
|
# install - (nur fuer Linux) kopieren des fertigen Programms sowie der
|
|
# ggf. benoetigten weiteren Dateien (Hilfe etc.) in die
|
|
# passenden Verzeichnisse $(TNNDIR), $(TNNUSEREXE),
|
|
# $(TNNSYSEXE), usw. - abhaengig von der gewuenschten Funktion
|
|
#
|
|
# go32 - (nur fuer Linux) wenn das Programm in einer GO32-Version
|
|
# unter Linux uebersetzt werden kann, sollte es hier auch mit
|
|
# eingetragen werden, damit es bei einem Befehl "make go32"
|
|
# mit uebersetzt wird.
|
|
#
|
|
|
|
PRGNAM := contrib/programmname
|
|
PRGFILES := $(PRGNAM)/prg.c $(PRGNAM)/makefile
|
|
|
|
# Phony Targets eintragen, die fuer LINUX und DOS gueltig sind
|
|
.PHONY: prg prgclean
|
|
|
|
# Lokale Erweiterung eintragen fuer "all" und "clean"
|
|
all: prg
|
|
clean: prgclean
|
|
|
|
# das wird bei "make prg" tatsaechlich uebersetzt:
|
|
prg: $(BIN)/prg
|
|
|
|
# nun wirds Systemabhaengig - erstmal Linux
|
|
ifeq ($(SYSTEM), LINUX)
|
|
# Phony Targets eintragen, die nur fuer LINUX gueltig sind
|
|
.PHONY: prgdist prginstall prggo32
|
|
|
|
# Lokale Erweiterung fuer "dist" eintragen
|
|
bigdist: prgdist
|
|
# Lokale Erweiterung fuer "install" eintragen
|
|
install: prginstall
|
|
# Lokale Erweiterung fuer "go32" eintragen
|
|
go32: prggo32
|
|
# das wird bei "make prggo32" tatsaechlich uebersetzt:
|
|
prggo32: $(BIN)/prggo32
|
|
|
|
# hier wird tatsaechlich uebersetzt
|
|
$(BIN)/prg: $(PRGFILES) $(CLEANER)
|
|
$(CLEANER) $(PRG)/prg.c
|
|
$(CC) $(CFLAGS_LIN) $(PRG)/prg.c -o $@
|
|
sync
|
|
echo $@ done.
|
|
|
|
$(BIN)/prggo32: $(PRGFILES) $(CLEANER)
|
|
$(CLEANER) $(PRG)/prg.c
|
|
$(CC_GO32) $(CFLAGS_GO32) $(PRG)/prg.c -o $@
|
|
chmod 644 $@
|
|
sync
|
|
echo $@ done.
|
|
|
|
prgclean:
|
|
rm -f $(BIN)/prg $(BIN)/prggo32{,.exe} $(PRG)/*~
|
|
|
|
prgdist:
|
|
cp --parents $(PRGFILES) $(DISTDIR)
|
|
|
|
prginstall:
|
|
install -m 0700 $(BIN)/prg $(TNNUSEREXE)/prg
|
|
else
|
|
#
|
|
# Hier (fast) das gleiche fuer Dose
|
|
#
|
|
$(BIN)/prg: $(PRGFILES) $(CLEANER)
|
|
$(CLEANER) $(PRG)/prg.c
|
|
$(CC) $(CFLAGS_GO32) $(PRG)/prg.c -o $@
|
|
echo $@ done.
|
|
|
|
prgclean:
|
|
erase $(subst /,\\,$(BIN))\prg
|
|
erase $(subst /,\\,$(BIN))\prg.exe
|
|
erase $(subst /,\\,$(PRG))\*.bak
|
|
endif
|