Home | History | Annotate | Download | only in disktest
      1 #
      2 # Disktest Makefile
      3 # Copyright (c) International Business Machines Corp., 2001
      4 #
      5 #
      6 # This program is free software; you can redistribute it and/or modify
      7 # it under the terms of the GNU General Public License as published by
      8 # the Free Software Foundation; either version 2 of the License, or
      9 # (at your option) any later version.
     10 #
     11 # This program is distributed in the hope that it will be useful,
     12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14 # GNU General Public License for more details.
     15 #
     16 # You should have received a copy of the GNU General Public License
     17 # along with this program; if not, write to the Free Software
     18 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
     19 #
     20 #  Please send e-mail to yardleyb (at] us.ibm.com if you have
     21 #  questions or comments.
     22 #
     23 #  Project Website:  TBD
     24 #
     25 #
     26 # $Id: Makefile.linux,v 1.4 2008/02/14 08:22:22 subrata_modak Exp $
     27 # $Log: Makefile.linux,v $
     28 # Revision 1.4  2008/02/14 08:22:22  subrata_modak
     29 # Disktest application update to version 1.4.2, by, Brent Yardley <yardleyb (at] us.ibm.com>
     30 #
     31 # Revision 1.31  2008/02/07 15:43:37  yardleyb
     32 # Applied patch from Mike Frysinger to ensure Makefile properly respect CFLAGS/LDFLAGS
     33 #
     34 # Revision 1.30  2006/10/19 20:01:48  yardleyb
     35 # changes made to support rpm builds
     36 #
     37 # Revision 1.29  2006/10/19 17:30:27  yardleyb
     38 # Added basic signal handling.
     39 #
     40 # Revision 1.28  2006/05/12 19:44:47  yardleyb
     41 # added CHANGELOG to distro
     42 # uninstall does not force a build
     43 #
     44 # Revision 1.27  2005/10/12 23:13:35  yardleyb
     45 # Updates to code to support new function in disktest version 1.3.x.
     46 # Actual changes are recorded in the README
     47 #
     48 # Revision 1.26  2004/12/18 06:13:03  yardleyb
     49 # Updated timer schema to more accurately use the time options.  Added
     50 # fsync on write option to -If.
     51 #
     52 # Revision 1.25  2004/12/17 06:34:56  yardleyb
     53 # removed -mf -ml.  These mark options cause to may issues when using
     54 # random block size transfers.  Fixed -ma option for endian-ness.  Fixed
     55 # false data misscompare during multiple cycles.
     56 #
     57 # Revision 1.24  2004/11/20 04:43:42  yardleyb
     58 # Minor code fixes.  Checking for alloc errors.
     59 #
     60 # Revision 1.23  2004/11/19 21:45:12  yardleyb
     61 # Fixed issue with code added for -F option.  Cased disktest
     62 # to SEG FAULT when cleaning up threads.
     63 #
     64 # Revision 1.22  2004/11/19 03:47:45  yardleyb
     65 # Fixed issue were args data was not being copied from a
     66 # clean source.
     67 #
     68 # Revision 1.21  2004/11/02 20:47:13  yardleyb
     69 # Added -F functions.
     70 # lots of minor fixes. see README
     71 #
     72 # Revision 1.20  2003/09/12 21:23:56  yardleyb
     73 # Updated version to 1.12
     74 #
     75 # Revision 1.19  2003/01/13 21:33:31  yardleyb
     76 # Added code to detect AIX volume size.
     77 # Updated mask for random LBA to use start_lba offset
     78 # Updated version to 1.1.10
     79 #
     80 # Revision 1.18  2002/05/31 18:48:50  yardleyb
     81 # Updated version to 1.1.9
     82 #
     83 # Revision 1.17  2002/04/24 01:59:45  yardleyb
     84 # Update to version v1.1.3
     85 #
     86 # Revision 1.16  2002/04/02 00:11:04  yardleyb
     87 # Corrected -D for each OS type
     88 #
     89 # Revision 1.15  2002/04/01 20:05:26  yardleyb
     90 # Modified Makefiles for linux,
     91 # Created Makefiles for windows/aix
     92 #
     93 # Revision 1.14  2002/03/07 03:38:52  yardleyb
     94 # Added dump function from command
     95 # line.  Created formatted dump output
     96 # for Data miscomare and command line.
     97 # Can now leave off filespec the full
     98 # path header as it will be added based
     99 # on -I.
    100 #
    101 # Revision 1.13  2002/02/28 04:25:45  yardleyb
    102 # reworked threading code
    103 # made locking code a macro.
    104 #
    105 # Revision 1.12  2002/02/26 19:35:59  yardleyb
    106 # Updates to parsing routines for user
    107 # input.  Added multipliers for -S and
    108 # -s command line arguments. Forced
    109 # default seeks to default if performing
    110 # a diskcache test.
    111 #
    112 # Revision 1.11  2002/02/21 21:42:15  yardleyb
    113 # Updated distro for man1
    114 #
    115 # Revision 1.10  2002/02/21 21:34:16  yardleyb
    116 # Cleaned up make dependancies
    117 # added install and uninstall
    118 #
    119 # Revision 1.9  2002/02/21 01:00:50  yardleyb
    120 # Added README and directory
    121 # structure to distro
    122 #
    123 # Revision 1.8  2002/02/19 02:46:37  yardleyb
    124 # Added changes to compile for AIX.
    125 # Update getvsiz so it returns a -1
    126 # if the ioctl fails and we handle
    127 # that fact correctly.  Added check
    128 # to force vsiz to always be greater
    129 # then stop_lba.
    130 #
    131 # Revision 1.7  2001/12/04 19:00:33  yardleyb
    132 # Updated to add new files and
    133 # filename changes
    134 #
    135 # Revision 1.6  2001/10/10 00:17:14  yardleyb
    136 # Added Copyright and GPL license text.
    137 # Miner bug fixes throughout text.
    138 #
    139 # Revision 1.5  2001/09/22 03:29:51  yardleyb
    140 # Added dependence on main.o for sfunc.h usage.h header files
    141 #
    142 # Revision 1.4  2001/09/10 22:14:27  yardleyb
    143 # Added clean up for tar file. Included man page in distro
    144 #
    145 # Revision 1.3  2001/09/06 18:23:30  yardleyb
    146 # Added duty cycle -D.  Updated usage. Added
    147 # make option to create .tar.gz of all files
    148 #
    149 # Revision 1.2  2001/09/05 22:44:42  yardleyb
    150 # Split out some of the special functions.
    151 # added O_DIRECT -Id.  Updated usage.  Lots
    152 # of clean up to functions.  Added header info
    153 # to pMsg.
    154 #
    155 # Revision 1.1  2001/09/04 19:28:07  yardleyb
    156 # Split usage out. Split header out.  Added usage text.
    157 # Made signal handler one function. code cleanup.
    158 #
    159 
    160 # -D "_LARGE_FILES" is used in AIX to support 64bit functions and data types
    161 # -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
    162 # These are typically taken from rpm, but, if not, defined here.
    163 bindir=/usr/bin
    164 libdir=/usr/lib
    165 sysconfdir=/etc
    166 mandir=/usr/share/man
    167 
    168 VER=`grep VER_STR main.h | awk -F\" '{print $$2}'`
    169 GBLHDRS=main.h globals.h defs.h
    170 ALLHDRS=$(wildcard *.h)
    171 SRCS=$(wildcard *.c)
    172 OBJS=$(SRCS:.c=.o)
    173 
    174 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)
    175 
    176 all: $(OBJS) disktest
    177 
    178 disktest: $(OBJS) $(SRCS) $(ALLHDRS)
    179 	$(CC) $(CFLAGS) -o disktest $(OBJS) $(LDFLAGS) -lpthread
    180 
    181 main.o: main.c $(ALLHDRS)
    182 sfunc.o: sfunc.c sfunc.h $(GBLHDRS)
    183 parse.o: parse.c parse.h sfunc.h $(GBLHDRS)
    184 childmain.o: childmain.c childmain.h sfunc.h parse.h threading.h $(GBLHDRS)
    185 threading.o: threading.c threading.h childmain.h sfunc.h $(GBLHDRS)
    186 globals.o: globals.c threading.h $(GBLHDRS)
    187 usage.o: usage.c usage.h
    188 Getopt.o: Getopt.c Getopt.h
    189 io.o: io.c io.h $(GBLHDRS)
    190 dump.o: dump.c dump.h $(GBLHDRS)
    191 timer.o: timer.c timer.h $(GBLHDRS)
    192 stats.o: stats.c stats.h $(GBLHDRS)
    193 signals.o: signals.c signals.h threading.h $(GBLHDRS)
    194 
    195 install: disktest
    196 	ln -f disktest ../../../bin
    197 
    198 clean:
    199 	rm -f disktest $(OBJS)
    200 
    201 all-clean: clean
    202 	rm -f *~ *tar* *zip*
    203 
    204 distro: all-clean
    205 	mkdir -p disktest-$(VER)/man1
    206 	cp ./Makefile* ./*.[ch] ./LICENSE ./README ./CHANGELOG disktest-$(VER)
    207 	cp ./man1/disktest.1 disktest-$(VER)/man1
    208 	chmod 444 disktest-$(VER)/man1/disktest.1
    209 	gzip disktest-$(VER)/man1/disktest.1
    210 	tar cvf ./disktest-$(VER).tar disktest-$(VER)
    211 	rm -rf disktest-$(VER)
    212 	gzip ./disktest-$(VER).tar
    213