File: makefile

package info (click to toggle)
netperf 2.3-4
  • links: PTS
  • area: non-free
  • in suites: sarge
  • size: 2,680 kB
  • ctags: 1,743
  • sloc: ansic: 27,215; sh: 528; makefile: 187
file content (297 lines) | stat: -rw-r--r-- 12,062 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
#
# @(#)Makefile	2.3	2004/06/15
#
# Makefile to build netperf benchmark tool
#
# for those folks running csh, this may help with makes
#SHELL="/bin/sh"

#what version of netperf is this for?
VERSION = 2.3

#
# This tells the script where the executables and scripts are supposed
# to go. Some people might be used to "/usr/etc/net_perf", but
# for the rest of the world, it is probably better to put the binaries
# in /usr/local/netperf or /opt/netperf
#
#NETPERF_HOME = /usr/local/netperf
NETPERF_HOME = /opt/netperf

# The compiler on your system might be somewhere else, and/or have
# a different name.
#
# /bin/cc              - the location on HP-UX 9.X and previous
# /usr/bin/cc          - the location on HP-UX 10.0 and some other
#                        platforms (IRIX, OSF/1)
# /opt/SUNWspro/bin/cc - the unbundled C compiler under Solaris
# cc                   - if your paths are set, this may be all you 
#                        need
# gcc                  - There is a gcc for MPE/iX, and this is likely
#                        the compiler on other platforms when you
#                        haven't gone and purchased the proper
#                        vendor supplied compiler :)
# 
# one most systems, netperf spends very little time in user code, and
# most of its time in the kernel, so I *suspect* that different
# optimization levels won't make very much of a difference. however,
# might as well compile -O... If you are using the HP-UX unbundled
# compiler, this will generate a warning about an unsupported option.
# You may safely ignore that warning.
#

CC = cc

# Adding flags to CFLAGS enables some non-mainline features. For
# more information, please consult the source code.
# -Ae         - enable ANSI C on HP-UX with namespace extensions. ANSI
#               compilation is required for -DHISTOGRAM
# -DDIRTY     - include code to dirty buffers before calls to send
# -DHISTOGRAM - include code to keep a histogram of r/r times or
#               time spent in send() - requires -Ae on HP-UX
#               This option requires -D_BSD_TYPES under IRIX
# -DINTERVALS - include code to allow pacing of sends in a UDP or TCP 
#               test. this may have unexpected results on non-HP-UX
#               systems as I have not learned how to emulate the
#               functionality found within the __hpux defines in
#               the catcher() routine of netlib.c
# -DDO_DLPI   - include code to test the DLPI implementation (may also 
#               require changes to LIBS. see below)
# -DDO_UNIX   - include code to test Unix Domain sockets
# -D$(LOG_FILE) Specifies where netserver should put its debug output 
#               when debug is enabled
# -DUSE_LOOPER- use looper or soaker processes to measure CPU
#               utilization. these will be forked-off at the
#               beginning. if you are running this way, it is
#               important to see how much impact these have on the
#               measurement. A loopback test on uniprocessor should be
#               able to consume ~100% of the CPU, and the difference
#               between throughput with USE_LOOPER CPU and without
#               should be small for a real network. if it is not, then
#               some work proably needs to be done on reducing the
#               priority of the looper processes.
# -DUSE_PSTAT - If used on HP-UX 10.0 and later, this will make CPU
#               utilization measurements with some information
#               returned byt he 10.X pstat() call. This is very
#               accurate, and should have no impact on the
#               measurement. Astute observers will notice that the
#               LOC_CPU and REM_CPU rates with this method look
#               remarkably close to the clockrate of the machine :)
# -DUSE_KSTAT - If used on Solaris 2.mumble, this will make CPU
#               utilization measurements using the kstat interface.
# -DUSE_PROC_STAT - For use on linux systems with CPU utilization info in
#               /proc/stat. Provides a fairly accurate CPU load measurement
#               without affecting measurement.
# -DDO_IPV6   - Include tests which use a sockets interface to IPV6.
#               The control connection remains IPV4
# -U__hpux    - Use this when compiling _on_ HP-UX *for* an HP-RT system
#
# -DDO_DNS    - Include tests (experimental) that measure the performance
#               of a DNS server.
# -DHAVE_SENDFILE - Include the TCP_SENDFILE test to test the perf of
#               sending data using sendfile() instead of send(). Depending
#               on the platform, you may need to add a -lsendfile - see
#               the comments about LIBS below
# -D_POSIX_SOURCE -D_SOCKET_SOURCE -DMPE - these are required for MPE/ix
#
# -DNEED_MAKEFILE_EDIT - this is the "cannary in the coal mine" to
#               tell people that they need to edit the makefile for 
#               their platform.  REMOVE THIS once you have edited
#               the makefile for your platform
# -DUSE_SYSCTL - Use sysctl() on FreeBSD (perhaps other BSDs) to calculate
#                CPU utilization
# -DUSE_PERFSTAT - Use the perfstat call on AIX to calculate CPU util
#
# -DHAVE_GETHRTIME - use gethrtime() instead of gettimeofday() for the
#                    histogram functionality
# -DOLD_HISTOGRAM - retain the output format and semantics of pre-2.2pl6
#                   -DHISTOGRAM functionality. Namely any times less than 
#                   TENTH_MSEC are lumped into the 0 bucket of TENTH_MSEC
#                   and the row retains the TENTH_MSEC lable instead of
#                   the new HUNDRED_USEC

LOG_FILE=DEBUG_LOG_FILE="\"/tmp/netperf.debug\""
CFLAGS = -O -D$(LOG_FILE) -DNEED_MAKEFILE_EDIT

# Some platforms, and some options, require additional libraries.
# you can add to the "LIBS =" line to accomplish this. if you find
# that additional libs are required for your platform, please let
# me know. rick jones <raj@cup.hp.com>
# -lstr                 - required for -DDO_DLPI on HP-UX 9.X
# -lsocket -lnsl -lelf  - required for Solaris 2.3 (2.4?)
# -L/usr/fore/lib -latm - required on all platforms for the Fore
#                         ATM API tests
# -lelf                 - on IRIX 5.2 to resolve nlist. with 2.0PL1
#                         and later, this should not be needed since
#                         netperf no longer uses nlist()
# -lsys5                - on Digital Unix (OSF) this helps insure that
#                         netserver processes are reaped?
# -lm                   - required for ALL platforms except Zeta OS
# -lxti                 - required for -DDO_XTI on HP_UX 10.X
# -L/POSIXC60/lib -lunix -lm -lsocket - for MPE/iX
# -lkstat               - required for -DUSE_KSTAT on Solaris
# -lsendfile            - required for -DHAVE_SENDFILE on Solaris 9
# -lresolv              - required for -DDO_DNS on RedHat 7.1
# -lsocket -lbind       - required for Zeta OS

LIBS= -lm

# ---------------------------------------------------------------
# it should not be the case that anything below this line needs to
# be changed. if it does, please let me know.
# rick jones <raj@cup.hp.com>


SHAR_SOURCE_FILES = netlib.c netlib.h netperf.c netserver.c \
		    netsh.c netsh.h \
		    nettest_bsd.c nettest_bsd.h \
		    nettest_dlpi.c nettest_dlpi.h \
		    nettest_unix.c nettest_unix.h \
                    nettest_xti.c nettest_xti.h \
                    nettest_ipv6.c nettest_ipv6.h \
                    nettest_dns.c nettest_dns.h \
                    hist.h \
		    makefile makefile.win32

ZIP_SOURCE_FILES  = netlib.c netlib.h netperf.c netserver.c \
		    netsh.c netsh.h \
		    nettest_bsd.c nettest_bsd.h \
                    hist.h \
		    makefile.win32

SHAR_EXE_FILES    = ACKNWLDGMNTS COPYRIGHT README Release_Notes \
                    netperf.ps \
		    netperf.man netserver.man \
		    README.ovms netserver_run.com 

SHAR_SCRIPT_FILES = tcp_stream_script udp_stream_script \
                    tcp_rr_script udp_rr_script tcp_range_script \
                    snapshot_script arr_script packet_byte_script

NETSERVER_OBJS	  = netserver.o nettest_bsd.o nettest_dlpi.o \
                    nettest_unix.o netlib.o netsh.o  \
		    nettest_xti.o nettest_ipv6.o \
                    nettest_dns.o

NETPERF_OBJS	  = netperf.o netsh.o netlib.o nettest_bsd.o \
                    nettest_dlpi.o nettest_unix.o  \
		    nettest_xti.o nettest_ipv6.o \
                    nettest_dns.o

NETPERF_SCRIPTS   = tcp_range_script tcp_stream_script tcp_rr_script \
                    udp_stream_script udp_rr_script \
                    snapshot_script

SCAF_FILES	  = spiff spiff.1 scaf_script scafsnapshot_script \
		    baselines/*

all: netperf netserver

netperf:	$(NETPERF_OBJS)
		$(CC) -o $@ $(NETPERF_OBJS) $(LIBS)

netserver:	$(NETSERVER_OBJS)
		$(CC) -o $@ $(NETSERVER_OBJS) $(LIBS)

netperf.o:	netperf.c netsh.h makefile

netsh.o:	netsh.c netsh.h nettest_bsd.h netlib.h makefile

netlib.o:	netlib.c netlib.h netsh.h makefile

nettest_bsd.o:	nettest_bsd.c nettest_bsd.h netlib.h netsh.h makefile

nettest_dlpi.o:	nettest_dlpi.c nettest_dlpi.h netlib.h netsh.h makefile

nettest_unix.o:	nettest_unix.c nettest_unix.h netlib.h netsh.h makefile

nettest_xti.o:   nettest_xti.c nettest_xti.h netlib.h netsh.h makefile

nettest_ipv6.o:  nettest_ipv6.c nettest_ipv6.h netlib.h netsh.h makefile

nettest_dns.o:  nettest_dns.c nettest_dns.h netlib.h netsh.h makefile

netserver.o:	netserver.c nettest_bsd.h netlib.h makefile

install:	netperf netserver
		mkdir -p $(NETPERF_HOME)
		chmod -w *.[ch]
		chmod +x $(NETPERF_SCRIPTS)
		@if [ ! -d $(NETPERF_HOME) ]; then \
			mkdir $(NETPERF_HOME) && chmod a+rx $(NETPERF_HOME); \
		fi
		cp netperf $(NETPERF_HOME)
		cp netserver $(NETPERF_HOME)
		cp $(NETPERF_SCRIPTS) $(NETPERF_HOME)
		chmod a+rx $(NETPERF_HOME)/netperf $(NETPERF_HOME)/netserver
		@for i in $(NETPERF_SCRIPTS); do \
			chmod a+rx $(NETPERF_HOME)/$$i; \
		done
clean:
	rm -f *.o netperf netserver core

extraclean:
	rm -f *.o netperf netserver core netperf.tar.gz netperf.shar \
	netperf_src.shar

deinstall:
	echo do this to deinstall rm -rf $(NETPERF_HOME)/*

netperf_src.shar: $(SHAR_SOURCE_FILES)
	shar -bcCsZ $(SHAR_SOURCE_FILES) > netperf_src.shar

shar:		netperf.shar
netperf.shar:	netperf-$(VERSION).shar

netperf-$(VERSION).shar: ${SHAR_EXE_FILES} ${SHAR_SCRIPT_FILES} \
                        ${SHAR_SOURCE_FILES}
	rm -rf netperf-${VERSION} netperf-${VERSION}.shar
	mkdir netperf-${VERSION}
	cp ${SHAR_EXE_FILES} ${SHAR_SCRIPT_FILES} ${SHAR_SOURCE_FILES} \
		netperf-${VERSION}
	shar -cCsZv netperf-${VERSION} > netperf-${VERSION}.shar 
     
netperf.zip:    $(ZIP_SOURCE_FILES) $(SHAR_EXE_FILES)
	zip netperf.zip $(ZIP_SOURCE_FILES) $(SHAR_EXE_FILES)

tar:		netperf.tar.gz
netperf.tar:	netperf-$(VERSION).tar
netperf.tar.gz:	netperf-$(VERSION).tar.gz

netperf-$(VERSION).tar: ${SHAR_EXE_FILES} ${SHAR_SCRIPT_FILES} \
                        ${SHAR_SOURCE_FILES}
	rm -rf netperf-${VERSION} netperf-${VERSION}.tar
	mkdir netperf-${VERSION}
	cp ${SHAR_EXE_FILES} ${SHAR_SCRIPT_FILES} ${SHAR_SOURCE_FILES} \
		netperf-${VERSION}
	tar -cf netperf-${VERSION}.tar netperf-${VERSION} 
     
netperf-$(VERSION).tar.gz: netperf-$(VERSION).tar
	rm -f netperf-${VERSION}.tar.gz
	gzip -9f netperf-${VERSION}.tar

netperf-scaf.tar:	$(SHAR_EXE_FILES) \
			$(SHAR_SCRIPT_FILES) \
			$(SCAF_FILES)
	tar -cf netperf-scaf.tar \
		$(SHAR_EXE_FILES) \
		$(SHAR_SCRIPT_FILES) $(SCAF_FILES)
	compress netperf-scaf.tar

netperf-scaf.shar:	$(SHAR_EXE_FILES) \
			$(SHAR_SCRIPT_FILES) \
			$(SCAF_FILES)
	shar -bcCsZ $(SHAR_EXE_FILES) \
		$(SHAR_SCRIPT_FILES) $(SCAF_FILES) > netperf-scaf.shar

#netperf.shar:	$(SHAR_SOURCE_FILES) $(SHAR_EXE_FILES) $(SHAR_SCRIPT_FILES)
#	shar -bcCsZ $(SHAR_SOURCE_FILES) $(SHAR_EXE_FILES) \
#		$(SHAR_SCRIPT_FILES) > netperf.shar

#netperf.tar:	$(SHAR_EXE_FILES) \
#		$(SHAR_SCRIPT_FILES) $(SHAR_SOURCE_FILES)
#	tar -cf netperf.tar $(SHAR_EXE_FILES) \
#		$(SHAR_SCRIPT_FILES) $(SHAR_SOURCE_FILES)
#	gzip netperf.tar