You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
freshtomato-arm/release/src-rt-6.x.4708/router/udpxy/Makefile

212 lines
5.2 KiB
Makefile

# @(#) GNU Makefile for udpxy project
#
# Copyright 2008-2012 Pavel V. Cherenkov
#
# This file is part of udpxy.
#
# udpxy is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# udpxy is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with udpxy. If not, see <http://www.gnu.org/licenses/>.
#
.SUFFIXES : .o .c .d
EXEC := udpxy
UDPXREC := udpxrec
STRIP := /usr/bin/strip
GZIP := /bin/gzip
MKDEPOPT := -MM
DEBUG_ON := -g
ALL_CFLAGS = -W -Wall -Werror --pedantic $(CFLAGS)
SYSTEM=$(shell uname 2>/dev/null)
ifneq (,$(filter $(SYSTEM),FreeBSD))
MAKE := gmake
GZIP := /usr/bin/gzip
endif
ifneq (,$(filter $(SYSTEM),Darwin))
GZIP := /usr/bin/gzip
endif
BUILDFILE = BUILD
BUILDNO := `cat $(BUILDFILE)`
BTYPEFILE = BLDTYPE
BTYPE := `cat $(BTYPEFILE) | tr -d '"'`
VERSIONFILE = VERSION
VERSION := `cat $(VERSIONFILE) | tr -d '"'`
PATCHFILE = PATCH
PATCHNO := `cat $(PATCHFILE)`
CHANGEFILE := CHANGES
READMEFILE := README
ifndef PREFIX
PREFIX := /usr/local
endif
INSTALLROOT := $(DESTDIR)$(PREFIX)
ARCDIR = ..
ARCFILE := $(ARCDIR)/$(EXEC).$(VERSION).$(BUILDNO)-$(PATCHNO)-$(BTYPE).tar.gz
DEBUG_OPT := $(COPT) $(DEBUG_ON) -DTRACE_MODULE
PROD_OPT := $(COPT) -DNDEBUG -DTRACE_MODULE
LEAN_OPT := $(COPT) -DNDEBUG
UTILDIR := util
SLOOP_FILES := sloop_p.c sloop_s.c
UDPXY_MAN1 := udpxy.1
UDPXREC_MAN1 := udpxrec.1
UDPXY_MANPAGE_EN := doc/en/$(UDPXY_MAN1)
# UDPXY_MANPAGE_RU := doc/ru/$(UDPXY_MAN1)
UDPXREC_MANPAGE_EN := doc/en/$(UDPXREC_MAN1)
# UDPXYREC_MANPAGE_RU := doc/ru/$(UDPXREC_MAN1)
MANPAGE_DIR := $(DESTDIR)/usr/share/man/man1
DOCDIR := doc
DOCFILES := *.txt $(DOCDIR)
SRC := udpxy.c sloop.c rparse.c util.c prbuf.c ifaddr.c ctx.c mkpg.c \
rtp.c uopt.c dpkt.c netop.c extrn.c main.c
ifneq (yes,$(NO_UDPXREC))
SRC += udpxrec.c
CDEFS += -DUDPXREC_MOD
endif
OBJ := ${SRC:.c=.o}
DEPFILE := $(EXEC).dep
CORES := core.* core
.PHONY: clean distclean distro install uninstall all \
debug ldebug rdebug lean verify touch incbuild
.c.o :
$(CC) $(ALL_CFLAGS) $(CPPFLAGS) $(CDEFS) $(COPT) -c $< -o $@
release:
@echo -e "\nMaking a [release] version (use 'debug' target as an alternative)\n"
@$(MAKE) all "COPT=${PROD_OPT}" "CFLAGS=${CFLAGS}" "CDEFS=${CDEFS}" "CPPFLAGS=${CPPFLAGS}"
debug:
@echo -e "\nMaking a [debug] version (use 'release' target as an alternative)\n"
@$(MAKE) all "COPT=${DEBUG_OPT}" "CFLAGS=${CFLAGS}" "CDEFS=${CDEFS}" "CPPFLAGS=${CPPFLAGS}"
lean:
@echo -e "\nMaking a [lean] version (minimal size)\n"
@$(MAKE) all "COPT=${LEAN_OPT}" "CFLAGS=${CFLAGS}" "CDEFS=${CDEFS}" "CPPFLAGS=${CPPFLAGS}"
ldebug:
@echo -e "\nMaking a [lean] version with debug info\n"
@$(MAKE) all "COPT=${LEAN_OPT} ${DEBUG_ON}" "CFLAGS=${CFLAGS}" "CDEFS=${CDEFS}" "CPPFLAGS=${CPPFLAGS}"
rdebug:
@echo -e "\nMaking a [release] version with debug info\n"
@$(MAKE) all "COPT=${PROD_OPT} ${DEBUG_ON}" "CDEFS=${CDEFS}" "CPPFLAGS=${CPPFLAGS}"
verify:
@echo -e "\nVerifying all build targets\n"
@$(MAKE) clean
@$(MAKE) release
@$(MAKE) clean
@$(MAKE) lean
@$(MAKE) clean
@$(MAKE) ldebug
@$(MAKE) clean
@$(MAKE) rdebug
@$(MAKE) clean
@$(MAKE) debug
@$(MAKE) clean
mk_deps := $(CC) $(CFLAGS) $(CDEFS) $(MKDEPOPT) $(SRC)
all: $(DEPFILE) $(EXEC)
$(DEPFILE): $(SRC)
$(mk_deps) > $(DEPFILE)
$(EXEC) : $(DEPFILE) $(OBJ)
@rm -f $(EXEC)
$(CC) $(CFLAGS) $(LDFLAGS) $(COPT) -o $(EXEC) $(OBJ)
@ls -l $(EXEC)
ifneq (yes, $(NO_UDPXREC))
@rm -f $(UDPXREC)
ln -s $(EXEC) $(UDPXREC)
endif
clean:
rm -f $(CORES) $(DEPFILE) $(OBJ) $(EXEC) $(UDPXREC)
distclean: clean
incbuild:
@expr `cat $(BUILDFILE)` + 1 > $(BUILDFILE)
@echo "Set build number to: `cat $(BUILDFILE)`"
@$(MAKE) touch
DISTRO_DIR := udpxy-$(VERSION).$(BUILDNO)-$(PATCHNO)
DISTRO_FILES := $(SRC) $(SLOOP_FILES) *.h Makefile $(DOCFILES) $(BUILDFILE) $(BTYPEFILE) \
$(VERSIONFILE) $(CHANGEFILE) $(READMEFILE) $(PATCHFILE)
distro: dist
dist:
@rm -fr $(DISTRO_DIR)
@mkdir $(DISTRO_DIR)
@mkdir $(DISTRO_DIR)/$(UTILDIR)
cp -R $(DISTRO_FILES) $(DISTRO_DIR)
tar -cvzf $(ARCFILE) $(DISTRO_DIR)
@ls -l $(ARCFILE)
@rm -fr $(DISTRO_DIR)
install: $(EXEC)
@mkdir -p -m 755 $(INSTALLROOT)/bin
@cp $(EXEC) $(INSTALLROOT)/bin
@ls -l $(INSTALLROOT)/bin/$(EXEC)
@mkdir -p -m 755 $(MANPAGE_DIR)
@$(GZIP) -c $(UDPXY_MANPAGE_EN) > $(MANPAGE_DIR)/$(UDPXY_MAN1).gz
ifneq (yes, $(NO_UDPXREC))
@cp $(UDPXREC) $(INSTALLROOT)/bin/$(UDPXREC)
@ls -l $(INSTALLROOT)/bin/$(UDPXREC)
@$(GZIP) -c $(UDPXREC_MANPAGE_EN) > $(MANPAGE_DIR)/$(UDPXREC_MAN1).gz
endif
@echo "Installation of udpxy is complete"
install-strip: install
$(STRIP) $(INSTALLROOT)/bin/$(EXEC)
@ls -l $(INSTALLROOT)/bin/$(EXEC)
@echo "udpxy executable stripped"
uninstall:
@rm -f $(INSTALLROOT)/bin/$(EXEC) $(INSTALLROOT)/bin/$(UDPXREC)
@rm -f $(MANPAGE_DIR)/$(UDPXY_MAN1).gz $(MANPAGE_DIR)/$(UDPXREC_MAN1).gz
@echo "udpxy successfully uninstalled"
ifneq ($(MAKECMDGOALS), clean)
-include $(DEPFILE)
endif
# __EOF__