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,v 1.13 2009/11/06 20:07:30 vapier Exp $ 27 # $Log: Makefile,v $ 28 # Revision 1.13 2009/11/06 20:07:30 vapier 29 # drop adding of -O/-W type flags that are already handled in common .mk files 30 # 31 # for the few makefiles that arent yet converted to the .mk infrastructure: 32 # Lately gcc developers introduced -Wextra flag that does the same as -W but is 33 # more descriptive. According to this using -W flag should be safe (as gcc is 34 # backward compatlible) but using -Wextra is limited to newer gcc releases. 35 # 36 # Attached patch replaces all -Wextra occurences with -W and thus fixes 37 # compliation failures with older gcc (mine was gcc-3.3.3 on sles). 38 # 39 # patch by Cyril Hrubis 40 # 41 # Revision 1.12 2009/10/09 17:55:48 yaberauneya 42 # 1. Please see README.mk-devel for a full description of the changes 43 # from a Make perspective. 44 # 2. Several files were changed to accomodate correct installation 45 # practices, most notably ones in testcases/network/{ipv6,tcp_cmds}, 46 # testcases/kernel/sched/hyperthreading/ht_enabled/..., and some items 47 # in tools/..., and also to avoid collisions as far as installed 48 # testcases (scripts, compiled C apps) were concerned. 49 # 3. Several apps weren't autoconf safe and some autoconf tests and 50 # conditional statements have been placed in sourcecode and in Makefiles 51 # to either a) prevent the tests from being built / installed or b) turn 52 # the tests into dummy apps which print out TCONF messages due to 53 # lack-of-build support. 54 # 55 # Signed-off-by: Ngie Cooper <yaneurabeya (at] gmail.com> 56 # 57 # Revision 1.11 2008/02/14 08:22:22 subrata_modak 58 # Disktest application update to version 1.4.2, by, Brent Yardley <yardleyb (at] us.ibm.com> 59 # 60 # Revision 1.31 2008/02/07 15:43:37 yardleyb 61 # Applied patch from Mike Frysinger to ensure Makefile properly respect CFLAGS/LDFLAGS 62 # 63 # Revision 1.30 2006/10/19 20:01:48 yardleyb 64 # changes made to support rpm builds 65 # 66 # Revision 1.29 2006/10/19 17:30:27 yardleyb 67 # Added basic signal handling. 68 # 69 # Revision 1.28 2006/05/12 19:44:47 yardleyb 70 # added CHANGELOG to distro 71 # uninstall does not force a build 72 # 73 # Revision 1.27 2005/10/12 23:13:35 yardleyb 74 # Updates to code to support new function in disktest version 1.3.x. 75 # Actual changes are recorded in the README 76 # 77 # Revision 1.26 2004/12/18 06:13:03 yardleyb 78 # Updated timer schema to more accurately use the time options. Added 79 # fsync on write option to -If. 80 # 81 # Revision 1.25 2004/12/17 06:34:56 yardleyb 82 # removed -mf -ml. These mark options cause to may issues when using 83 # random block size transfers. Fixed -ma option for endian-ness. Fixed 84 # false data misscompare during multiple cycles. 85 # 86 # Revision 1.24 2004/11/20 04:43:42 yardleyb 87 # Minor code fixes. Checking for alloc errors. 88 # 89 # Revision 1.23 2004/11/19 21:45:12 yardleyb 90 # Fixed issue with code added for -F option. Cased disktest 91 # to SEG FAULT when cleaning up threads. 92 # 93 # Revision 1.22 2004/11/19 03:47:45 yardleyb 94 # Fixed issue were args data was not being copied from a 95 # clean source. 96 # 97 # Revision 1.21 2004/11/02 20:47:13 yardleyb 98 # Added -F functions. 99 # lots of minor fixes. see README 100 # 101 # Revision 1.20 2003/09/12 21:23:56 yardleyb 102 # Updated version to 1.12 103 # 104 # Revision 1.19 2003/01/13 21:33:31 yardleyb 105 # Added code to detect AIX volume size. 106 # Updated mask for random LBA to use start_lba offset 107 # Updated version to 1.1.10 108 # 109 # Revision 1.18 2002/05/31 18:48:50 yardleyb 110 # Updated version to 1.1.9 111 # 112 # Revision 1.17 2002/04/24 01:59:45 yardleyb 113 # Update to version v1.1.3 114 # 115 # Revision 1.16 2002/04/02 00:11:04 yardleyb 116 # Corrected -D for each OS type 117 # 118 # Revision 1.15 2002/04/01 20:05:26 yardleyb 119 # Modified Makefiles for linux, 120 # Created Makefiles for windows/aix 121 # 122 # Revision 1.14 2002/03/07 03:38:52 yardleyb 123 # Added dump function from command 124 # line. Created formatted dump output 125 # for Data miscomare and command line. 126 # Can now leave off filespec the full 127 # path header as it will be added based 128 # on -I. 129 # 130 # Revision 1.13 2002/02/28 04:25:45 yardleyb 131 # reworked threading code 132 # made locking code a macro. 133 # 134 # Revision 1.12 2002/02/26 19:35:59 yardleyb 135 # Updates to parsing routines for user 136 # input. Added multipliers for -S and 137 # -s command line arguments. Forced 138 # default seeks to default if performing 139 # a diskcache test. 140 # 141 # Revision 1.11 2002/02/21 21:42:15 yardleyb 142 # Updated distro for man1 143 # 144 # Revision 1.10 2002/02/21 21:34:16 yardleyb 145 # Cleaned up make dependancies 146 # added install and uninstall 147 # 148 # Revision 1.9 2002/02/21 01:00:50 yardleyb 149 # Added README and directory 150 # structure to distro 151 # 152 # Revision 1.8 2002/02/19 02:46:37 yardleyb 153 # Added changes to compile for AIX. 154 # Update getvsiz so it returns a -1 155 # if the ioctl fails and we handle 156 # that fact correctly. Added check 157 # to force vsiz to always be greater 158 # then stop_lba. 159 # 160 # Revision 1.7 2001/12/04 19:00:33 yardleyb 161 # Updated to add new files and 162 # filename changes 163 # 164 # Revision 1.6 2001/10/10 00:17:14 yardleyb 165 # Added Copyright and GPL license text. 166 # Miner bug fixes throughout text. 167 # 168 # Revision 1.5 2001/09/22 03:29:51 yardleyb 169 # Added dependence on main.o for sfunc.h usage.h header files 170 # 171 # Revision 1.4 2001/09/10 22:14:27 yardleyb 172 # Added clean up for tar file. Included man page in distro 173 # 174 # Revision 1.3 2001/09/06 18:23:30 yardleyb 175 # Added duty cycle -D. Updated usage. Added 176 # make option to create .tar.gz of all files 177 # 178 # Revision 1.2 2001/09/05 22:44:42 yardleyb 179 # Split out some of the special functions. 180 # added O_DIRECT -Id. Updated usage. Lots 181 # of clean up to functions. Added header info 182 # to pMsg. 183 # 184 # Revision 1.1 2001/09/04 19:28:07 yardleyb 185 # Split usage out. Split header out. Added usage text. 186 # Made signal handler one function. code cleanup. 187 # 188 189 # 1. -D_LARGE_FILES is used in AIX to support 64bit functions and data types. 190 # 2. For Linux: 191 # i. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 is used in to support 192 # 64-bit functions and data types. 193 # ii. -D_GNU_SOURCE is to support Linux O_DIRECT. 194 # 195 # i. and ii. are typically taken from rpm, but, if not, are defined here. 196 # 197 198 top_srcdir ?= ../../../.. 199 200 include $(top_srcdir)/include/mk/env_pre.mk 201 202 VER := `grep VER_STR $(abs_srcdir)/main.h | awk -F\" '{print $$2}'` 203 204 CPPFLAGS += -DLINUX -D_THREAD_SAFE -D_GNU_SOURCE -D_LARGE_FILES -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 $(RPM_OPT_FLAGS) 205 206 DISTRO_FILES := Makefile* *.[ch] LICENSE README CHANGELOG 207 208 LDLIBS += -lpthread 209 210 MAKE_TARGETS := disktest 211 212 OBJS := $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c)) 213 214 disktest-$(VER): 215 mkdir -p "$@" 216 217 disktest: $(OBJS) 218 $(LINK.o) $^ $(LOADLIBES) $(LDLIBS) $(OUTPUT_OPTION) 219 220 all-clean: clean 221 $(RM) -rf *~ *tar* *zip* disktest-$(VER) 222 223 distro: all-clean | disktest-$(VER) 224 mkdir -p disktest-$(VER)/man1 225 cp $(addprefix $(abs_srcdir)/,$(DISTRO_FILES)) disktest-$(VER)/. 226 install -m 00444 $(abs_srcdir)/man1/disktest.1 disktest-$(VER)/man1 227 gzip disktest-$(VER)/man1/disktest.1 228 tar -cvzf disktest-$(VER).tar.gz disktest-$(VER) 229 230 include $(top_srcdir)/include/mk/generic_leaf_target.mk 231