android13/external/ltp/testcases/kernel/io/disktest/Makefile.linux

213 lines
6.8 KiB
Makefile

#
# Disktest Makefile
# Copyright (c) International Business Machines Corp., 2001
#
#
# This program 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 2 of the License, or
# (at your option) any later version.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Please send e-mail to yardleyb@us.ibm.com if you have
# questions or comments.
#
# Project Website: TBD
#
#
# $Id: Makefile.linux,v 1.4 2008/02/14 08:22:22 subrata_modak Exp $
# $Log: Makefile.linux,v $
# Revision 1.4 2008/02/14 08:22:22 subrata_modak
# Disktest application update to version 1.4.2, by, Brent Yardley <yardleyb@us.ibm.com>
#
# Revision 1.31 2008/02/07 15:43:37 yardleyb
# Applied patch from Mike Frysinger to ensure Makefile properly respect CFLAGS/LDFLAGS
#
# Revision 1.30 2006/10/19 20:01:48 yardleyb
# changes made to support rpm builds
#
# Revision 1.29 2006/10/19 17:30:27 yardleyb
# Added basic signal handling.
#
# Revision 1.28 2006/05/12 19:44:47 yardleyb
# added CHANGELOG to distro
# uninstall does not force a build
#
# Revision 1.27 2005/10/12 23:13:35 yardleyb
# Updates to code to support new function in disktest version 1.3.x.
# Actual changes are recorded in the README
#
# Revision 1.26 2004/12/18 06:13:03 yardleyb
# Updated timer schema to more accurately use the time options. Added
# fsync on write option to -If.
#
# Revision 1.25 2004/12/17 06:34:56 yardleyb
# removed -mf -ml. These mark options cause to may issues when using
# random block size transfers. Fixed -ma option for endian-ness. Fixed
# false data misscompare during multiple cycles.
#
# Revision 1.24 2004/11/20 04:43:42 yardleyb
# Minor code fixes. Checking for alloc errors.
#
# Revision 1.23 2004/11/19 21:45:12 yardleyb
# Fixed issue with code added for -F option. Cased disktest
# to SEG FAULT when cleaning up threads.
#
# Revision 1.22 2004/11/19 03:47:45 yardleyb
# Fixed issue were args data was not being copied from a
# clean source.
#
# Revision 1.21 2004/11/02 20:47:13 yardleyb
# Added -F functions.
# lots of minor fixes. see README
#
# Revision 1.20 2003/09/12 21:23:56 yardleyb
# Updated version to 1.12
#
# Revision 1.19 2003/01/13 21:33:31 yardleyb
# Added code to detect AIX volume size.
# Updated mask for random LBA to use start_lba offset
# Updated version to 1.1.10
#
# Revision 1.18 2002/05/31 18:48:50 yardleyb
# Updated version to 1.1.9
#
# Revision 1.17 2002/04/24 01:59:45 yardleyb
# Update to version v1.1.3
#
# Revision 1.16 2002/04/02 00:11:04 yardleyb
# Corrected -D for each OS type
#
# Revision 1.15 2002/04/01 20:05:26 yardleyb
# Modified Makefiles for linux,
# Created Makefiles for windows/aix
#
# Revision 1.14 2002/03/07 03:38:52 yardleyb
# Added dump function from command
# line. Created formatted dump output
# for Data miscomare and command line.
# Can now leave off filespec the full
# path header as it will be added based
# on -I.
#
# Revision 1.13 2002/02/28 04:25:45 yardleyb
# reworked threading code
# made locking code a macro.
#
# Revision 1.12 2002/02/26 19:35:59 yardleyb
# Updates to parsing routines for user
# input. Added multipliers for -S and
# -s command line arguments. Forced
# default seeks to default if performing
# a diskcache test.
#
# Revision 1.11 2002/02/21 21:42:15 yardleyb
# Updated distro for man1
#
# Revision 1.10 2002/02/21 21:34:16 yardleyb
# Cleaned up make dependancies
# added install and uninstall
#
# Revision 1.9 2002/02/21 01:00:50 yardleyb
# Added README and directory
# structure to distro
#
# Revision 1.8 2002/02/19 02:46:37 yardleyb
# Added changes to compile for AIX.
# Update getvsiz so it returns a -1
# if the ioctl fails and we handle
# that fact correctly. Added check
# to force vsiz to always be greater
# then stop_lba.
#
# Revision 1.7 2001/12/04 19:00:33 yardleyb
# Updated to add new files and
# filename changes
#
# Revision 1.6 2001/10/10 00:17:14 yardleyb
# Added Copyright and GPL license text.
# Miner bug fixes throughout text.
#
# Revision 1.5 2001/09/22 03:29:51 yardleyb
# Added dependence on main.o for sfunc.h usage.h header files
#
# Revision 1.4 2001/09/10 22:14:27 yardleyb
# Added clean up for tar file. Included man page in distro
#
# Revision 1.3 2001/09/06 18:23:30 yardleyb
# Added duty cycle -D. Updated usage. Added
# make option to create .tar.gz of all files
#
# Revision 1.2 2001/09/05 22:44:42 yardleyb
# Split out some of the special functions.
# added O_DIRECT -Id. Updated usage. Lots
# of clean up to functions. Added header info
# to pMsg.
#
# Revision 1.1 2001/09/04 19:28:07 yardleyb
# Split usage out. Split header out. Added usage text.
# Made signal handler one function. code cleanup.
#
# -D "_LARGE_FILES" is used in AIX to support 64bit functions and data types
# -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
# These are typically taken from rpm, but, if not, defined here.
bindir=/usr/bin
libdir=/usr/lib
sysconfdir=/etc
mandir=/usr/share/man
VER=`grep VER_STR main.h | awk -F\" '{print $$2}'`
GBLHDRS=main.h globals.h defs.h
ALLHDRS=$(sort $(wildcard *.h))
SRCS=$(sort $(wildcard *.c))
OBJS=$(SRCS:.c=.o)
CFLAGS += -g -Wall -O -D"LINUX" -D"_THREAD_SAFE" -D"_GNU_SOURCE" -D"_LARGE_FILES" -D"_LARGEFILE64_SOURCE" -D"_FILE_OFFSET_BITS=64" $(RPM_OPT_FLAGS)
all: $(OBJS) disktest
disktest: $(OBJS) $(SRCS) $(ALLHDRS)
$(CC) $(CFLAGS) -o disktest $(OBJS) $(LDFLAGS) -lpthread
main.o: main.c $(ALLHDRS)
sfunc.o: sfunc.c sfunc.h $(GBLHDRS)
parse.o: parse.c parse.h sfunc.h $(GBLHDRS)
childmain.o: childmain.c childmain.h sfunc.h parse.h threading.h $(GBLHDRS)
threading.o: threading.c threading.h childmain.h sfunc.h $(GBLHDRS)
globals.o: globals.c threading.h $(GBLHDRS)
usage.o: usage.c usage.h
Getopt.o: Getopt.c Getopt.h
io.o: io.c io.h $(GBLHDRS)
dump.o: dump.c dump.h $(GBLHDRS)
timer.o: timer.c timer.h $(GBLHDRS)
stats.o: stats.c stats.h $(GBLHDRS)
signals.o: signals.c signals.h threading.h $(GBLHDRS)
install: disktest
ln -f disktest ../../../bin
clean:
rm -f disktest $(OBJS)
all-clean: clean
rm -f *~ *tar* *zip*
distro: all-clean
mkdir -p disktest-$(VER)/man1
cp ./Makefile* ./*.[ch] ./LICENSE ./README ./CHANGELOG disktest-$(VER)
cp ./man1/disktest.1 disktest-$(VER)/man1
chmod 444 disktest-$(VER)/man1/disktest.1
gzip disktest-$(VER)/man1/disktest.1
tar cvf ./disktest-$(VER).tar disktest-$(VER)
rm -rf disktest-$(VER)
gzip ./disktest-$(VER).tar