0
0
mirror of https://github.com/ecki/net-tools.git synced 2024-11-23 11:16:13 +00:00
net-tools/Makefile
2021-01-09 22:44:00 -05:00

253 lines
6.6 KiB
Makefile

#
# Makefile Main Makefile for the net-tools Package
#
# NET-TOOLS A collection of programs that form the base set of the
# NET-3 Networking Distribution for the LINUX operating
# system.
#
# Author: Bernd Eckenfels <net-tools@lina.inka.de>
# Copyright 1995-1996 Bernd Eckenfels, Germany
#
# URLs: http://net-tools.sourceforge.net/
#
# Based on: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
# Copyright 1988-1993 MicroWalt Corporation
#
# Modifications:
# Extensively modified from 01/21/94 onwards by
# Alan Cox <A.Cox@swansea.ac.uk>
# Copyright 1993-1994 Swansea University Computer Society
#
# Be careful!
# This Makefile doesn't describe complete dependencies for all include files.
# If you change include files you might need to do make clean.
#
# set the base of the Installation
# BASEDIR = /mnt
BASEDIR ?= $(DESTDIR)
BINDIR ?= /bin
SBINDIR ?= /sbin
# path to the net-lib support library. Default: lib
NET_LIB_PATH = lib
NET_LIB_NAME = net-tools
PROGS := ifconfig netstat route nameif
-include config.make
ifeq ($(HAVE_ARP_TOOLS),1)
PROGS += arp rarp
endif
ifeq ($(HAVE_HOSTNAME_TOOLS),1)
PROGS += hostname
endif
ifeq ($(HAVE_IP_TOOLS),1)
PROGS += iptunnel ipmaddr
endif
ifeq ($(HAVE_MII),1)
PROGS += mii-tool
endif
ifeq ($(HAVE_PLIP_TOOLS),1)
PROGS += plipconfig
endif
ifeq ($(HAVE_SERIAL_TOOLS),1)
PROGS += slattach
endif
# Compiler and Linker Options
CFLAGS ?= -O2 -g
CFLAGS += -Wall
CFLAGS += -fno-strict-aliasing # code needs a lot of work before strict aliasing is safe
CPPFLAGS += -D_GNU_SOURCE
# Turn on transparent support for LFS
CPPFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
ifeq ($(HAVE_AFDECnet),1)
DNLIB = -ldnet
endif
ifeq ($(origin CC), undefined)
CC = gcc
endif
LD = $(CC)
PKG_CONFIG ?= pkg-config
# -------- end of user definitions --------
MAINTAINER = net-tools-devel@lists.sourceforge.net
RELEASE = 3.14-alpha
.EXPORT_ALL_VARIABLES:
ifeq ("$(NET_LIB_PATH)","lib2")
TOPDIR = ..
else
TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
endif
NET_LIB = $(NET_LIB_PATH)/lib$(NET_LIB_NAME).a
ifeq ($(HAVE_SELINUX),1)
SE_PC_CFLAGS := $(shell $(PKG_CONFIG) --cflags libselinux)
SE_PC_LIBS := $(shell $(PKG_CONFIG) --libs libselinux || echo -lselinux)
SELIB = $(SE_PC_LIBS)
CPPFLAGS += $(SE_PC_CFLAGS)
endif
CPPFLAGS += -I. -I$(TOPDIR)/include -I$(NET_LIB_PATH)
LDFLAGS += -L$(NET_LIB_PATH)
SUBDIRS = man/ $(NET_LIB_PATH)/
NLIB = -l$(NET_LIB_NAME)
%.o: %.c config.h version.h intl.h lib/net-features.h $<
$(CC) $(CFLAGS) $(CPPFLAGS) -c $<
all: config.h version.h subdirs $(PROGS)
config: cleanconfig config.h
install: all installbin installdata
mostlyclean:
rm -f -- *.o DEADJOE config.new *~ *.orig lib/*.o
clean: mostlyclean
rm -f -- $(PROGS)
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean) ; done
@cd po && $(MAKE) clean
cleanconfig:
rm -f -- config.h
clobber: clean
rm -f -- $(PROGS) config.h version.h config.status config.make
@for i in $(SUBDIRS); do (cd $$i && $(MAKE) clobber) ; done
dist:
rm -rf -- net-tools-$(RELEASE)
git archive --prefix=net-tools-$(RELEASE)/ HEAD | tar xf -
$(MAKE) -C net-tools-$(RELEASE)/po $@
tar cf - net-tools-$(RELEASE)/ | xz > net-tools-$(RELEASE).tar.xz
rm -rf -- net-tools-$(RELEASE)
distcheck: dist
tar xf net-tools-$(RELEASE).tar.xz
yes "" | $(MAKE) -C net-tools-$(RELEASE) config
$(MAKE) -C net-tools-$(RELEASE)
rm -rf -- net-tools-$(RELEASE)
@printf "\nThe tarball is ready to go:\n%s\n" "`du -b net-tools-$(RELEASE).tar.xz`"
config.h: config.in Makefile
@echo "Configuring the Linux net-tools (NET-3 Base Utilities)..." ; echo
@if [ config.status -nt config.in ]; \
then ./configure.sh config.status; \
else ./configure.sh config.in; \
fi
version.h: Makefile
@echo "#define RELEASE \"net-tools $(RELEASE)\"" >version.h
$(NET_LIB): config.h version.h intl.h libdir
i18n.h: i18ndir
libdir: version.h
@$(MAKE) -C $(NET_LIB_PATH)
i18ndir:
@$(MAKE) -C po
# use libdir target for lib/ to avoid parallel build issues
subdirs: libdir
@for i in $(SUBDIRS:$(NET_LIB_PATH)/=); do $(MAKE) -C $$i || exit $$? ; done
ifconfig: $(NET_LIB) ifconfig.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ ifconfig.o $(NLIB) $(LDLIBS)
nameif: $(NET_LIB) nameif.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ nameif.o $(NLIB) $(LDLIBS)
hostname: hostname.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ hostname.o $(DNLIB) $(LDLIBS)
route: $(NET_LIB) route.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ route.o $(NLIB) $(LDLIBS)
arp: $(NET_LIB) arp.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ arp.o $(NLIB) $(LDLIBS)
rarp: $(NET_LIB) rarp.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ rarp.o $(NLIB) $(LDLIBS)
slattach: $(NET_LIB) slattach.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ slattach.o $(NLIB) $(LDLIBS)
plipconfig: $(NET_LIB) plipconfig.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ plipconfig.o $(NLIB) $(LDLIBS)
netstat: $(NET_LIB) netstat.o statistics.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ netstat.o statistics.o $(NLIB) $(SELIB) $(LDLIBS)
iptunnel: $(NET_LIB) iptunnel.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ iptunnel.o $(NLIB) $(LDLIBS)
ipmaddr: $(NET_LIB) ipmaddr.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ ipmaddr.o $(NLIB) $(LDLIBS)
mii-tool: $(NET_LIB) mii-tool.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ mii-tool.o $(NLIB) $(LDLIBS)
installbin:
@echo
@echo "######################################################"
@echo "Notice: ifconfig and route are now installed into /bin"
@echo "######################################################"
@echo
install -m 0755 -d ${BASEDIR}${SBINDIR}
install -m 0755 -d ${BASEDIR}${BINDIR}
install -m 0755 ifconfig ${BASEDIR}${BINDIR}
install -m 0755 nameif ${BASEDIR}${SBINDIR}
install -m 0755 netstat ${BASEDIR}${BINDIR}
install -m 0755 route ${BASEDIR}${BINDIR}
ifeq ($(HAVE_ARP_TOOLS),1)
install -m 0755 arp ${BASEDIR}${SBINDIR}
install -m 0755 rarp ${BASEDIR}${SBINDIR}
endif
ifeq ($(HAVE_HOSTNAME_TOOLS),1)
install -m 0755 hostname ${BASEDIR}${BINDIR}
ln -fs hostname $(BASEDIR)${BINDIR}/dnsdomainname
ifeq ($(HAVE_HOSTNAME_SYMLINKS),1)
ln -fs hostname $(BASEDIR)${BINDIR}/ypdomainname
ln -fs hostname $(BASEDIR)${BINDIR}/nisdomainname
ln -fs hostname $(BASEDIR)${BINDIR}/domainname
endif
ifeq ($(HAVE_AFDECnet),1)
ln -fs hostname $(BASEDIR)${BINDIR}/nodename
endif
endif
ifeq ($(HAVE_IP_TOOLS),1)
install -m 0755 ipmaddr $(BASEDIR)${SBINDIR}
install -m 0755 iptunnel $(BASEDIR)${SBINDIR}
endif
ifeq ($(HAVE_MII),1)
install -m 0755 mii-tool $(BASEDIR)${SBINDIR}
endif
ifeq ($(HAVE_PLIP_TOOLS),1)
install -m 0755 plipconfig $(BASEDIR)${SBINDIR}
endif
ifeq ($(HAVE_SERIAL_TOOLS),1)
install -m 0755 slattach $(BASEDIR)${SBINDIR}
endif
installdata:
$(MAKE) -C man install
$(MAKE) -C po install
# End of Makefile.