2 # @(#)Makefile 2.1 97/10/23
4 # Makefile to build SFS benchmark suite
7 # Copyright (c) 1992-1997,2001 by Standard Performance Evaluation Corporation
9 # Standard Performance Evaluation Corporation (SPEC)
10 # 6585 Merchant Place, Suite 100
13 # This tape contains benchmarks acquired from several sources who
14 # understand and agree with SPEC's goal of creating fair and objective
15 # benchmarks to measure computer performance.
17 # This copyright notice is placed here only to protect SPEC in the
18 # event the source is misused in any manner that is contrary to the
19 # spirit, the goals and the intent of SPEC.
21 # The source code is provided to the user or company under the license
22 # agreement for the SPEC Benchmark Suite for this tape.
25 # *****************************************************************
27 # * Copyright 1991,1992 Legato Systems, Inc. *
28 # * Copyright 1991,1992 Auspex Systems, Inc. *
29 # * Copyright 1991,1992 Data General Corporation *
30 # * Copyright 1991,1992 Digital Equipment Corporation *
31 # * Copyright 1991,1992 Interphase Corporation *
32 # * Copyright 1991,1992 Sun Microsystems, Inc. *
34 # *****************************************************************
37 # ----------------------- How to use this makefile --------------------
39 # The makefile is divided into 10 sections:
40 # 1) basic information
41 # 2) default compiler definitions
42 # 3) vendor specific definitions
43 # 4) OS feature specific definitions
44 # 5) final compiler definitions (includes specific vendor and feature defs)
45 # 6) source file definitions
46 # 7) object file definitions
47 # 8) rules and targets for building sfs
48 # 9) lint, install, clean, misc rules
51 # ---------------------- default compiler definitions -----------------
53 # For Solaris 2.X (SunOS 5.X) or later
57 CFLAGS = -v -Xc -D__sparc -D_POSIX_SOURCE
59 EXTRA_CFLAGS = -DPORTMAP
64 OSTYPE = -DSVR4 -DSOLARIS2
66 RPCLIB = rpc/librpclib.a
67 LIBS = -lm -lsocket -lnsl
70 # ---------------------- OS feature specific definitions ------------------
74 # A UNIX derivative that only supports the getfsent(3) family of calls
75 # should have the USEFSTAB variable set.
76 # A UNIX derivative that supports the getmntent(3) family of calls
77 # should have the line commented out.
80 # SFS uses the setsid(2) system call to form a new proces group
81 # This prevents 'synchronization' signals from causing parent shell (sh)
82 # to exit. SETPGRP_CALL allows you to specify the alternative use
83 # of the setpgrp(2) and which variation you are using.
85 # If you are linking with BSD libraries then uncomment the next line.
86 # SETPGRP_CALL = -DSETPGRP_BSD
88 # If you are linking with SYSV type libraries then uncomment the next line.
89 #SETPGRP_CALL = -DSETPGRP_SYSV
91 # if your client is failing the mount even when run as root then you should
92 # uncomment the RESVPORT_MOUNT to explicitly bind to a reserved port.
93 # RESVPORT_MOUNT = -DRESVPORT
96 # ---------------------- final compiler definitions -----------------------
107 # ---------------------- source file definitions ------------------
112 DOC = sfs.1 README sfs.1
114 SHELLFILES = sfs_mgr sfs_mcr sfs_rc
116 V2_HDR = sfs_c_def.h sfs_c_nfs.h
118 V3_HDR = sfs_c_def.h sfs_c_nfs.h
120 V2_SRC = sfs_2_ops.c sfs_2_vld.c
122 V3_SRC = sfs_3_ops.c sfs_3_vld.c
124 C_SRC = sfs_c_clk.c sfs_c_dat.c sfs_c_dmp.c sfs_c_man.c \
125 sfs_c_pnt.c sfs_c_rnd.c sfs_c_sig.c sfs_c_bio.c \
126 sfs_2_xdr.c sfs_3_xdr.c sfs_c_mnt.c sfs_c_chd.c \
129 C_COMMON_SRC = sfs_c_sub.c
133 M_PRIME_SRC = sfs_m_prm.c
135 M_SYNCD_SRC = sfs_m_snc.c
137 M_MSG_SRC = sfs_m_msg.c
139 M_COMMON_SRC = sfs_m_xdr.c
142 # ---------------------- object file definitions -------------------
145 V2_OBJ = sfs_2_ops.o sfs_2_vld.o
147 V3_OBJ = sfs_3_ops.o sfs_3_vld.o
149 C_OBJ = sfs_c_clk.o sfs_c_dat.o sfs_c_dmp.o sfs_c_man.o \
150 sfs_c_pnt.o sfs_c_rnd.o sfs_c_sig.o sfs_c_bio.o \
151 sfs_2_xdr.o sfs_3_xdr.o sfs_c_mnt.o sfs_c_chd.o \
154 C_COMMON_OBJ = sfs_c_sub.o
157 M_PRIME_OBJ = sfs_m_prm.o
159 M_SYNCD_OBJ = sfs_m_snc.o
161 M_MSG_OBJ = sfs_m_msg.o
163 M_COMMON_OBJ = sfs_m_xdr.o
166 # ---------------------- rules and targets for building sfs ---------
170 all: fix_perm install
172 compile: fix_perm install
175 chmod 755 $(BENCH)/src
176 chmod 755 $(BENCH)/src/rpc
177 chmod 755 $(BENCH)/bin
179 sfs: $(V2_HDR) $(M_HDR) $(V2_OBJ) $(C_OBJ) \
180 $(C_COMMON_OBJ) $(M_COMMON_OBJ) $(M_MSG_OBJ) $(RPCLIB)
181 $(CC) -o $@ $(LDFLAGS) $(V2_OBJ) $(C_OBJ) $(C_COMMON_OBJ) \
182 $(M_COMMON_OBJ) $(M_MSG_OBJ) $(RPCLIB) $(LIBS) \
185 sfs3: $(V3_HDR) $(M_HDR) $(V3_OBJ) $(C_OBJ) \
186 $(C_COMMON_OBJ) $(M_COMMON_OBJ) $(M_MSG_OBJ) $(RPCLIB)
187 $(CC) -o $@ $(LDFLAGS) $(V3_OBJ) $(C_OBJ) $(C_COMMON_OBJ) \
188 $(M_COMMON_OBJ) $(M_MSG_OBJ) $(RPCLIB) $(LIBS) \
191 sfs_prime: $(V2_HDR) $(M_HDR) $(M_PRIME_OBJ) \
192 $(C_COMMON_OBJ) $(M_COMMON_OBJ) $(M_MSG_OBJ) $(RPCLIB)
193 $(CC) -o $@ $(LDFLAGS) $(M_PRIME_OBJ) $(C_COMMON_OBJ) \
194 $(M_COMMON_OBJ) $(M_MSG_OBJ) $(RPCLIB) $(LIBS) \
197 sfs_syncd: $(V2_HDR) $(M_HDR) $(M_SYNCD_OBJ) \
198 $(C_COMMON_OBJ) $(M_COMMON_OBJ) $(RPCLIB)
199 $(CC) -o $@ $(LDFLAGS) $(M_SYNCD_OBJ) $(C_COMMON_OBJ) \
200 $(M_COMMON_OBJ) $(RPCLIB) $(LIBS) $(EXTRA_LIBS)
203 $(CC) -c $(INCDIR) $(CFLAGS) $(EXTRA_CFLAGS) $(DEBUG) \
204 $(SETPGRP_CALL) $(FSTAB) $(OSTYPE) $(OPT) \
205 $(RESVPORT_MOUNT) $*.c
208 @cd rpc; make MACHID="${MACHID}"\
209 CC="${CC}" CFLAGS="${CFLAGS}" \
210 LDFLAGS="${LDFLAGS}" EXTRA_CFLAGS="${EXTRA_CFLAGS}" \
211 EXTRA_LDFLAGS="${EXTRA_LDFLAGS}" EXTRA_LIBS="${EXTRA_LIBS}" \
212 LIBS="${LIBS}" OSTYPE="${OSTYPE}" OPT="${OPT}" \
213 EXTRA_LINTFLAGS="${EXTRA_LINTFLAGS}" \
214 RESVPORT_MOUNT="${RESVPORT_MOUNT}"\
217 sfs_3_ops.o: sfs_c_nfs.h sfs_c_def.h sfs_3_ops.c
219 sfs_3_vld.o: sfs_c_nfs.h sfs_c_def.h sfs_3_vld.c
221 sfs_3_xdr.o: sfs_c_nfs.h sfs_c_def.h sfs_3_xdr.c
223 sfs_c_bio.o: sfs_c_nfs.h sfs_c_def.h sfs_c_bio.c
225 sfs_c_chd.o: sfs_c_nfs.h sfs_c_def.h sfs_m_def.h sfs_c_chd.c
227 sfs_c_clk.o: sfs_c_nfs.h sfs_c_def.h sfs_c_clk.c
229 sfs_c_clnt.o: sfs_c_nfs.h sfs_c_def.h sfs_c_clnt.c
231 sfs_c_dat.o: sfs_c_def.h sfs_m_def.h sfs_c_nfs.h sfs_c_dat.c
233 sfs_c_dmp.o: sfs_c_nfs.h sfs_c_def.h sfs_c_dmp.c
235 sfs_c_man.o: sfs_c_nfs.h sfs_c_def.h \
236 sfs_m_def.h sfs_c_man.c
238 sfs_c_mnt.o: sfs_c_nfs.h sfs_c_def.h sfs_c_mnt.c
240 sfs_2_ops.o: sfs_c_nfs.h sfs_c_def.h sfs_2_ops.c
242 sfs_c_pnt.o: sfs_c_nfs.h sfs_c_def.h \
243 sfs_m_def.h sfs_c_pnt.c
245 sfs_c_rnd.o: sfs_c_rnd.c
247 sfs_c_sig.o: sfs_c_nfs.h sfs_c_def.h sfs_c_sig.c
249 sfs_c_sub.o: sfs_c_nfs.h sfs_c_def.h sfs_c_sub.c
251 sfs_2_vld.o: sfs_c_nfs.h sfs_c_def.h sfs_2_vld.c
253 sfs_2_xdr.o: sfs_c_nfs.h sfs_c_def.h sfs_2_xdr.c
255 sfs_m_msg.o: sfs_c_nfs.h sfs_c_def.h \
256 sfs_m_def.h sfs_m_msg.c
258 sfs_m_prm.o: sfs_c_nfs.h sfs_c_def.h \
259 sfs_m_def.h sfs_m_prm.c
261 sfs_m_snc.o: sfs_c_nfs.h sfs_c_def.h \
262 sfs_m_def.h sfs_m_snc.c
264 sfs_m_xdr.o: sfs_m_def.h sfs_m_xdr.c
267 # ---------------------- lint, install, clean, misc rules -----------------
270 lint: lint_sfs lint_sfs3 lint_prime lint_syncd
272 lint_sfs: $(V2_HDR) $(M_HDR) $(V2_SRC) $(C_SRC) \
273 $(C_COMMON_SRC) $(M_COMMON_SRC) $(M_MSG_SRC)
274 lint -Dlint $(INCDIR) $(CFLAGS) $(EXTRA_CFLAGS) $(DEBUG) \
276 $(SETPGRP_CALL) $(FSTAB) $(OSTYPE) \
278 $(V2_SRC) $(C_SRC) $(C_COMMON_SRC) \
279 $(M_COMMON_SRC) $(M_MSG_SRC) \
280 $(LIBS) $(EXTRA_LIBS) \
283 lint_prime: $(V2_HDR) $(M_HDR) $(M_PRIME_SRC) \
284 $(C_COMMON_SRC) $(M_COMMON_SRC) $(M_MSG_SRC)
285 lint -Dlint $(INCDIR) $(CFLAGS) $(EXTRA_CFLAGS) $(DEBUG) \
287 $(SETPGRP_CALL) $(FSTAB) $(OSTYPE) \
289 $(M_PRIME_SRC) $(C_COMMON_SRC) \
290 $(M_COMMON_SRC) $(M_MSG_SRC) \
291 $(LIBS) $(EXTRA_LIBS) \
294 lint_syncd: $(V2_HDR) $(M_HDR) $(M_SYNCD_SRC) \
295 $(C_COMMON_SRC) $(M_COMMON_SRC)
296 lint -Dlint $(INCDIR) $(CFLAGS) $(EXTRA_CFLAGS) $(DEBUG) \
298 $(SETPGRP_CALL) $(FSTAB) $(OSTYPE) \
300 $(M_SYNCD_SRC) $(C_COMMON_SRC) $(M_COMMON_SRC) \
301 $(LIBS) $(EXTRA_LIBS) \
304 lint_sfs3: $(V3_HDR) $(M_HDR) $(V3_SRC) $(C_SRC) \
305 $(C_COMMON_SRC) $(M_COMMON_SRC) $(M_MSG_SRC)
306 lint -Dlint $(INCDIR) $(CFLAGS) $(EXTRA_CFLAGS) $(DEBUG) \
308 $(SETPGRP_CALL) $(FSTAB) $(OSTYPE) \
310 $(V3_SRC) $(C_SRC) $(C_COMMON_SRC) \
311 $(M_COMMON_SRC) $(M_MSG_SRC) \
312 $(LIBS) $(EXTRA_LIBS) \
315 install: sfs sfs3 sfs_syncd sfs_prime
316 chmod +x sfs_syncd sfs_prime \
317 sfs_mgr sfs_mcr sfs_ext_mon \
319 ./sfs_suchown $(RESVPORT_MOUNT) sfs sfs3
322 rm -f *.o sfs sfs_syncd sfs_prime \
324 lint.out sfs_*.shr1 core *.lint
326 ./sfs_suchown clobber