Clean and tiddy-up files.
[tomato.git] / release / src / router / udpxy / Makefile
blobd1af1db56d377e18d8259e28c5e77fb7762088a4
1 # @(#) generic $(MAKE)file for udpxy project
3 # Copyright 2008 Pavel V. Cherenkov
5 # This file is part of udpxy.
7 # udpxy is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
12 # udpxy is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
17 # You should have received a copy of the GNU General Public License
18 # along with udpxy. If not, see <http://www.gnu.org/licenses/>.
21 include ../common.mak
23 CFLAGS = -O2 -Wall #-mips32
24 CFLAGS += -I$(SRCBASE)/include -I$(TOP)/shared
25 LDFLAGS =
27 .SUFFIXES : .o .c .d
29 EXEC := udpxy
30 UPXC := upxc
31 UDPXREC := udpxrec
33 MKDEPOPT := -M
34 DEBUG_ON := -g
36 #CFLAGS += -W -Wall -Werror --pedantic
38 SYSTEM=$(shell uname 2>/dev/null)
39 ifeq ($(SYSTEM), FreeBSD)
40 MAKE := gmake
41 endif
43 ifeq ($(CC), gcc)
44 CCKIND := gcc
45 endif
47 ifeq ($(CCKIND), gcc)
48 CC := gcc
49 endif
51 ifeq ($(CCKIND), hp_ansicc64)
52 CC := cc
53 CFLAGS := -Ae +ESconstlit +w1 -z +DD64 -D_REENTRANT
54 MKDEPOPT :=
55 DEBUG_ON := -g
56 endif
58 ifeq ($(CCKIND), hp_ansicc20)
59 CC := cc
60 CFLAGS := -Ae +ESconstlit +w1 -z +DA2.0 -D_REENTRANT
61 MKDEPOPT :=
62 endif
64 ifeq ($(CCKIND), hp_ansicc11)
65 CC := cc
66 CFLAGS := -Ae +ESconstlit +w1 -z +DA1.1 -D_REENTRANT
67 MKDEPOPT :=
68 endif
70 ifeq ($(CCKIND), icc)
71 CC := icc
72 CFLAGS := -w2 -wd1419,177
73 endif
75 ifeq ($(CCKIND), suncc)
76 CC := suncc
77 CFLAGS := -v
78 MKDEPOPT := -xM1
79 endif
81 ifeq ($(PROFTOOL),gprof)
82 CFLAGS += -pg
83 endif
86 BUILDFILE = BUILD
87 BUILDNO := `cat $(BUILDFILE)`
89 BTYPEFILE = BLDTYPE
90 BTYPE := `cat $(BTYPEFILE) | tr -d '"'`
92 VERSIONFILE = VERSION
93 VERSION := `cat $(VERSIONFILE) | tr -d '"'`
95 CHANGEFILE := CHANGES
96 READMEFILE := README
98 DOCFILES := doc/udpxy-manual-RU.rtf
100 #INSTALLROOT := /usr/local
101 INSTALLROOT := $(INSTALLDIR)
103 ARCDIR = ..
104 ARCFILE := $(ARCDIR)/$(EXEC).$(VERSION)-$(BTYPE)$(BUILDNO).tgz
106 COMMON_OPT :=
107 ifneq (yes,$(NO_UDPXREC))
108 COMMON_OPT := $(COMMON_OPT) -DUDPXREC_MOD
109 endif
111 DEBUG_OPT := $(COMMON_OPT) $(USER_OPT) $(DEBUG_ON) -DTRACE_MODULE
112 PROD_OPT := $(COMMON_OPT) $(USER_OPT) -DNDEBUG -DTRACE_MODULE
113 LEAN_OPT := $(COMMON_OPT) -DNDEBUG $(USER_OPT)
116 UTILDIR := util
117 MKDEP_SRC := $(UTILDIR)/mkdep.c
118 MKDEP_TOOL := $(UTILDIR)/mkdep
120 SRC := udpxy.c rparse.c util.c prbuf.c ifaddr.c ctx.c mkpg.c \
121 rtp.c uopt.c dpkt.c netop.c extrn.c main.c
122 ifneq (yes,$(NO_UDPXREC))
123 SRC := $(SRC) udpxrec.c
124 endif
126 OBJ := ${SRC:.c=.o}
128 DEPFILE := $(EXEC).dep
129 CORES := core.* core
131 .PHONY: clean all debug lean verify touch incbuild tar wl-distro
133 .c.o :
134 $(CC) $(CFLAGS) $(CDEFS) $(COPT) -c $< -o $@
136 release:
137 @echo -e "\nMaking a [release] version (use 'debug' target as an alternative)\n"
138 @$(MAKE) all "COPT=${PROD_OPT}"
140 debug:
141 @echo -e "\nMaking a [debug] version (use 'release' target as an alternative)\n"
142 @$(MAKE) all "COPT=${DEBUG_OPT}"
144 lean:
145 @echo -e "\nMaking a [lean] version (minimal size)\n"
146 @$(MAKE) all "COPT=${LEAN_OPT}"
148 verify:
149 @echo -e "\nVerifying all build targets\n"
150 @$(MAKE) clean
151 @$(MAKE) lean
152 @$(MAKE) clean
153 @$(MAKE) release
154 @$(MAKE) clean
155 @$(MAKE) debug
156 @$(MAKE) clean
158 ifneq ($(MKDEPOPT),)
159 mk_deps := $(CC) $(CFLAGS) $(MKDEPOPT) $(SRC)
160 else
161 mk_deps := HPATH='.' $(MKDEP_TOOL) -- $(SRC)
162 endif
164 all: $(DEPFILE) $(EXEC)
165 # include $(UPXC) (if needed) in all target to build
167 $(MKDEP_TOOL): $(MKDEP_SRC)
168 $(CC) -o $@ $(MKDEP_SRC)
169 @ls -l $@
171 $(DEPFILE): $(MKDEP_TOOL) $(SRC)
172 $(mk_deps) > $(DEPFILE)
174 $(EXEC) : $(DEPFILE) $(OBJ)
175 @rm -f $(EXEC)
176 $(CC) $(CFLAGS) $(COPT) -o $(EXEC) $(OBJ)
177 @ls -l $(EXEC)
178 ifneq (yes, $(NO_UDPXREC))
179 @rm -f $(UDPXREC)
180 ln -s $(EXEC) $(UDPXREC)
181 endif
183 clean:
184 rm -f $(CORES) $(DEPFILE) $(OBJ) $(EXEC) $(UDPXREC)
186 incbuild:
187 @expr `cat $(BUILDFILE)` + 1 > $(BUILDFILE)
188 @echo "Set build number to: `cat $(BUILDFILE)`"
189 @$(MAKE) touch
191 DISTRO_DIR := udpxy-$(VERSION)-$(BUILDNO)
192 DISTRO_FILES := $(SRC) *.h Makefile *.txt $(BUILDFILE) $(BTYPEFILE) \
193 $(VERSIONFILE) $(CHANGEFILE) $(READMEFILE) $(DOCFILES)
195 distro:
196 @rm -fr $(DISTRO_DIR)
197 @mkdir $(DISTRO_DIR)
198 @mkdir $(DISTRO_DIR)/$(UTILDIR)
200 cp -R $(DISTRO_FILES) $(DISTRO_DIR)
201 cp -R $(MKDEP_SRC) $(DISTRO_DIR)/$(MKDEP_SRC)
202 tar -cvzf $(ARCFILE) $(DISTRO_DIR)
203 @ls -l $(ARCFILE)
204 @rm -fr $(DISTRO_DIR)
206 install:
207 @echo " [udpxy] Installing..."
208 @test -d $(INSTALLROOT)/usr/sbin || mkdir -p -m 755 $(INSTALLROOT)/usr/sbin
209 @cp $(EXEC) $(INSTALLROOT)/usr/sbin
210 ifneq (yes, $(NO_UDPXREC))
211 @rm -f $(INSTALLROOT)/usr/sbin/$(UDPXREC)
212 ln -s $(EXEC) $(INSTALLROOT)/usr/sbin/$(UDPXREC)
213 endif
215 $(STRIP) $(INSTALLROOT)/usr/sbin/udpxy
216 @ls -l $(INSTALLROOT)/usr/sbin/$(EXEC) $(INSTALLROOT)/usr/sbin/$(UDPXREC)
217 @echo "Installation of udpxy is complete"
219 uninstall:
220 @rm -f $(INSTALLROOT)/bin/$(EXEC) $(INSTALLROOT)/bin/$(UDPXREC)
221 @echo "udpxy successfully uninstalled"
223 ifneq ($(MAKECMDGOALS), clean)
224 -include $(DEPFILE)
225 endif
227 # __EOF__