1fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
2fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Disktest Makefile
3fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Copyright (c) International Business Machines Corp., 2001
4fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
5fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
6fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# This program is free software; you can redistribute it and/or modify
7fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# it under the terms of the GNU General Public License as published by
8fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# the Free Software Foundation; either version 2 of the License, or
9fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# (at your option) any later version.
10fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
11fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# This program is distributed in the hope that it will be useful,
12fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# but WITHOUT ANY WARRANTY; without even the implied warranty of
13fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# GNU General Public License for more details.
15fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
16fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# You should have received a copy of the GNU General Public License
17fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# along with this program; if not, write to the Free Software
18fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
20fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#  Please send e-mail to yardleyb@us.ibm.com if you have
21fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#  questions or comments.
22fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
23fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#  Project Website:  TBD
24fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
25fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
2677e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# $Id: Makefile.aix,v 1.3 2008/02/14 08:22:22 subrata_modak Exp $
27fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# $Log: Makefile.aix,v $
2877e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Revision 1.3  2008/02/14 08:22:22  subrata_modak
2977e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Disktest application update to version 1.4.2, by, Brent Yardley <yardleyb@us.ibm.com>
3077e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak#
3177e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Revision 1.10  2006/10/19 17:30:27  yardleyb
3277e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Added basic signal handling.
3377e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak#
3477e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Revision 1.9  2006/05/12 19:44:47  yardleyb
3577e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# added CHANGELOG to distro
3677e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# uninstall does not force a build
3777e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak#
3877e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Revision 1.8  2005/10/12 23:13:35  yardleyb
3977e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Updates to code to support new function in disktest version 1.3.x.
4077e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Actual changes are recorded in the README
4177e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak#
4277e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Revision 1.7  2005/06/02 20:16:19  yardleyb
4377e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak# Added changes for aix make
44fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
45fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.6  2004/11/20 04:43:42  yardleyb
46fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Minor code fixes.  Checking for alloc errors.
47fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
48fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.5  2004/11/19 21:45:12  yardleyb
49fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Fixed issue with code added for -F option.  Cased disktest
50fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# to SEG FAULT when cleaning up threads.
51fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
52fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.4  2003/01/13 21:33:31  yardleyb
53fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Added code to detect AIX volume size.
54fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Updated mask for random LBA to use start_lba offset
55fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Updated version to 1.1.10
56fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
57fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.3  2002/04/24 01:59:45  yardleyb
58fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Update to version v1.1.3
59fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
60fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.2  2002/04/02 00:11:04  yardleyb
61fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Corrected -D for each OS type
62fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
63fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.1  2002/04/01 20:05:26  yardleyb
64fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Modified Makefiles for linux,
65fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Created Makefiles for windows/aix
66fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
67fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.14  2002/03/07 03:38:52  yardleyb
68fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Added dump function from command
69fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# line.  Created formatted dump output
70fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# for Data miscomare and command line.
71fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Can now leave off filespec the full
72fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# path header as it will be added based
73fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# on -I.
74fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
75fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.13  2002/02/28 04:25:45  yardleyb
76fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# reworked threading code
77fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# made locking code a macro.
78fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
79fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.12  2002/02/26 19:35:59  yardleyb
80fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Updates to parsing routines for user
81fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# input.  Added multipliers for -S and
82fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# -s command line arguments. Forced
83fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# default seeks to default if performing
84fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# a diskcache test.
85fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
86fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.11  2002/02/21 21:42:15  yardleyb
87fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Updated distro for man1
88fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
89fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.10  2002/02/21 21:34:16  yardleyb
90fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Cleaned up make dependancies
91fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# added install and uninstall
92fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
93fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.9  2002/02/21 01:00:50  yardleyb
94fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Added README and directory
95fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# structure to distro
96fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
97fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.8  2002/02/19 02:46:37  yardleyb
98fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Added changes to compile for AIX.
99fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Update getvsiz so it returns a -1
100fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# if the ioctl fails and we handle
101fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# that fact correctly.  Added check
102fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# to force vsiz to always be greater
103fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# then stop_lba.
104fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
105fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.7  2001/12/04 19:00:33  yardleyb
106fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Updated to add new files and
107fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# filename changes
108fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
109fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.6  2001/10/10 00:17:14  yardleyb
110fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Added Copyright and GPL license text.
111fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Miner bug fixes throughout text.
112fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
113fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.5  2001/09/22 03:29:51  yardleyb
114fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Added dependence on main.o for sfunc.h usage.h header files
115fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
116fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.4  2001/09/10 22:14:27  yardleyb
117fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Added clean up for tar file. Included man page in distro
118fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
119fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.3  2001/09/06 18:23:30  yardleyb
120fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Added duty cycle -D.  Updated usage. Added
121fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# make option to create .tar.gz of all files
122fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
123fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.2  2001/09/05 22:44:42  yardleyb
124fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Split out some of the special functions.
125fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# added O_DIRECT -Id.  Updated usage.  Lots
126fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# of clean up to functions.  Added header info
127fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# to pMsg.
128fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
129fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Revision 1.1  2001/09/04 19:28:07  yardleyb
130fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Split usage out. Split header out.  Added usage text.
131fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# Made signal handler one function. code cleanup.
132fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge#
133fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
134fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# -D "_LARGE_FILES" is used in AIX to support 64bit functions and data types
135fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge# -D"_LARGEFILE64_SOURCE" -D"_FILE_OFFSET_BITS=64" is used in Linux to support 64bit functions and data types. -D"_GNU_SOURCE" is to support Linux O_DIRECT
136fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
13777e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakVER=v1.3.0
138fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeGBLHDRS=main.h globals.h defs.h
13977e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakALLHDRS=main.h sfunc.h parse.h childmain.h threading.h globals.h usage.h Getopt.h io.h dump.h timer.h stats.h signals.h
14077e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakSRCS=main.c sfunc.c parse.c childmain.c threading.c globals.c usage.c Getopt.c io.c dump.c timer.c stats.c signals.c
14177e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakOBJS=main.o sfunc.o parse.o childmain.o threading.o globals.o usage.o Getopt.o io.o dump.o timer.o stats.o signals.o
142fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
14377e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakCFLAGS= -O -D"AIX" -D"_THREAD_SAFE" -D"_GNU_SOURCE" -D"_LARGE_FILES" -D"_LARGEFILE64_SOURCE" -D"_FILE_OFFSET_BITS=64" -q64
144fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
145fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeall: $(OBJS) disktest
146fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
147fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgedisktest: $(OBJS) $(SRCS) $(ALLHDRS)
148fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	$(CC) $(CFLAGS) -lpthread -odisktest $(OBJS)
149fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
150fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgemain.o: main.c $(ALLHDRS)
151fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgesfunc.o: sfunc.c sfunc.h $(GBLHDRS)
152fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeparse.o: parse.c parse.h sfunc.h $(GBLHDRS)
153fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgechildmain.o: childmain.c childmain.h sfunc.h parse.h threading.h $(GBLHDRS)
154fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgethreading.o: threading.c threading.h childmain.h sfunc.h $(GBLHDRS)
155fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeglobals.o: globals.c threading.h $(GBLHDRS)
156fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeusage.o: usage.c usage.h
157fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeGetopt.o: Getopt.c Getopt.h
158fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeio.o: io.c io.h $(GBLHDRS)
159fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgedump.o: dump.c dump.h $(GBLHDRS)
16077e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakstats.o: stats.c stats.h $(GBLHDRS)
16177e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modaksignals.o: signals.c signals.h $(GBLHDRS)
162fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
163fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeinstall: disktest
16477e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak	cp disktest /usr/bin
16577e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak	cp man1/disktest.1.gz /usr/share/man/man1
16677e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak	gunzip /usr/share/man/man1/disktest.1.gz
167fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
16877e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakuninstall:
16977e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak	rm -f /usr/bin/disktest
170fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	rm -f /usr/share/man/man1/disktest.1
171fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
172fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeclean:
173fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	rm -f disktest $(OBJS)
174fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
175fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridgeall-clean: clean
176fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	rm -f *~ *tar* *zip*
177fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge
17877e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modakdistro: all-clean
179fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	mkdir disktest.$(VER)
180fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	mkdir disktest.$(VER)/man1
18177e42cafa8942eba6e7706c9d9c25a04ec7cdda5subrata_modak	cp ./Makefile ./*.[ch] ./LICENSE ./README ./CHANGELOG disktest.$(VER)
182fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	cp ./man1/disktest.1 disktest.$(VER)/man1
183fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	tar cvf ./disktest.$(VER).tar disktest.$(VER)
184fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	rm -rf disktest.$(VER)
185fb969a7b817633b4215ab0aa88ae5f99e4014eb6mridge	gzip ./disktest.$(VER).tar
186