Home | History | Annotate | Download | only in fio
      1 ifeq ($(SRCDIR),)
      2 SRCDIR := .
      3 endif
      4 
      5 VPATH := $(SRCDIR)
      6 
      7 ifneq ($(wildcard config-host.mak),)
      8 all:
      9 include config-host.mak
     10 config-host-mak: configure
     11 	@echo $@ is out-of-date, running configure
     12 	@sed -n "/.*Configured with/s/[^:]*: //p" $@ | sh
     13 else
     14 config-host.mak:
     15 ifneq ($(MAKECMDGOALS),clean)
     16 	@echo "Running configure for you..."
     17 	@./configure
     18 endif
     19 all:
     20 include config-host.mak
     21 endif
     22 
     23 DEBUGFLAGS = -DFIO_INC_DEBUG
     24 CPPFLAGS= -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFIO_INTERNAL $(DEBUGFLAGS)
     25 OPTFLAGS= -g -ffast-math
     26 CFLAGS	= -std=gnu99 -Wwrite-strings -Wall -Wdeclaration-after-statement $(OPTFLAGS) $(EXTFLAGS) $(BUILD_CFLAGS) -I. -I$(SRCDIR)
     27 LIBS	+= -lm $(EXTLIBS)
     28 PROGS	= fio
     29 SCRIPTS = $(addprefix $(SRCDIR)/,tools/fio_generate_plots tools/plot/fio2gnuplot tools/genfio tools/fiologparser.py tools/hist/fiologparser_hist.py)
     30 
     31 ifndef CONFIG_FIO_NO_OPT
     32   CFLAGS += -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
     33 endif
     34 
     35 ifdef CONFIG_GFIO
     36   PROGS += gfio
     37 endif
     38 
     39 SOURCE :=	$(patsubst $(SRCDIR)/%,%,$(wildcard $(SRCDIR)/crc/*.c)) \
     40 		$(patsubst $(SRCDIR)/%,%,$(wildcard $(SRCDIR)/lib/*.c)) \
     41 		gettime.c ioengines.c init.c stat.c log.c time.c filesetup.c \
     42 		eta.c verify.c memory.c io_u.c parse.c mutex.c options.c \
     43 		smalloc.c filehash.c profile.c debug.c engines/cpu.c \
     44 		engines/mmap.c engines/sync.c engines/null.c engines/net.c \
     45 		engines/ftruncate.c \
     46 		server.c client.c iolog.c backend.c libfio.c flow.c cconv.c \
     47 		gettime-thread.c helpers.c json.c idletime.c td_error.c \
     48 		profiles/tiobench.c profiles/act.c io_u_queue.c filelock.c \
     49 		workqueue.c rate-submit.c optgroup.c helper_thread.c \
     50 		steadystate.c
     51 
     52 ifdef CONFIG_LIBHDFS
     53   HDFSFLAGS= -I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/linux -I $(FIO_LIBHDFS_INCLUDE)
     54   HDFSLIB= -Wl,-rpath $(JAVA_HOME)/jre/lib/$(FIO_HDFS_CPU)/server -L$(JAVA_HOME)/jre/lib/$(FIO_HDFS_CPU)/server -ljvm $(FIO_LIBHDFS_LIB)/libhdfs.a
     55   CFLAGS += $(HDFSFLAGS)
     56   SOURCE += engines/libhdfs.c
     57 endif
     58 
     59 ifdef CONFIG_64BIT_LLP64
     60   CFLAGS += -DBITS_PER_LONG=32
     61 endif
     62 ifdef CONFIG_64BIT
     63   CFLAGS += -DBITS_PER_LONG=64
     64 endif
     65 ifdef CONFIG_32BIT
     66   CFLAGS += -DBITS_PER_LONG=32
     67 endif
     68 ifdef CONFIG_LIBAIO
     69   SOURCE += engines/libaio.c
     70 endif
     71 ifdef CONFIG_RDMA
     72   SOURCE += engines/rdma.c
     73 endif
     74 ifdef CONFIG_POSIXAIO
     75   SOURCE += engines/posixaio.c
     76 endif
     77 ifdef CONFIG_LINUX_FALLOCATE
     78   SOURCE += engines/falloc.c
     79 endif
     80 ifdef CONFIG_LINUX_EXT4_MOVE_EXTENT
     81   SOURCE += engines/e4defrag.c
     82 endif
     83 ifdef CONFIG_LINUX_SPLICE
     84   SOURCE += engines/splice.c
     85 endif
     86 ifdef CONFIG_GUASI
     87   SOURCE += engines/guasi.c
     88 endif
     89 ifdef CONFIG_FUSION_AW
     90   SOURCE += engines/fusion-aw.c
     91 endif
     92 ifdef CONFIG_SOLARISAIO
     93   SOURCE += engines/solarisaio.c
     94 endif
     95 ifdef CONFIG_WINDOWSAIO
     96   SOURCE += engines/windowsaio.c
     97 endif
     98 ifdef CONFIG_RBD
     99   SOURCE += engines/rbd.c
    100 endif
    101 ifndef CONFIG_STRSEP
    102   SOURCE += oslib/strsep.c
    103 endif
    104 ifndef CONFIG_STRCASESTR
    105   SOURCE += oslib/strcasestr.c
    106 endif
    107 ifndef CONFIG_STRLCAT
    108   SOURCE += oslib/strlcat.c
    109 endif
    110 ifndef CONFIG_GETOPT_LONG_ONLY
    111   SOURCE += oslib/getopt_long.c
    112 endif
    113 ifndef CONFIG_INET_ATON
    114   SOURCE += oslib/inet_aton.c
    115 endif
    116 ifdef CONFIG_GFAPI
    117   SOURCE += engines/glusterfs.c
    118   SOURCE += engines/glusterfs_sync.c
    119   SOURCE += engines/glusterfs_async.c
    120   ifdef CONFIG_GF_FADVISE
    121     CFLAGS += "-DGFAPI_USE_FADVISE"
    122   endif
    123 endif
    124 ifdef CONFIG_MTD
    125   SOURCE += engines/mtd.c
    126   SOURCE += oslib/libmtd.c
    127   SOURCE += oslib/libmtd_legacy.c
    128 endif
    129 ifdef CONFIG_PMEMBLK
    130   SOURCE += engines/pmemblk.c
    131 endif
    132 ifdef CONFIG_LINUX_DEVDAX
    133   SOURCE += engines/dev-dax.c
    134 endif
    135 
    136 ifeq ($(CONFIG_TARGET_OS), Linux)
    137   SOURCE += diskutil.c fifo.c blktrace.c cgroup.c trim.c engines/sg.c \
    138 		engines/binject.c oslib/linux-dev-lookup.c
    139   LIBS += -lpthread -ldl
    140   LDFLAGS += -rdynamic
    141 endif
    142 ifeq ($(CONFIG_TARGET_OS), Android)
    143   SOURCE += diskutil.c fifo.c blktrace.c trim.c profiles/tiobench.c \
    144 		oslib/linux-dev-lookup.c
    145   LIBS += -ldl
    146   LDFLAGS += -rdynamic
    147 endif
    148 ifeq ($(CONFIG_TARGET_OS), SunOS)
    149   LIBS	 += -lpthread -ldl
    150   CPPFLAGS += -D__EXTENSIONS__
    151 endif
    152 ifeq ($(CONFIG_TARGET_OS), FreeBSD)
    153   SOURCE += trim.c
    154   LIBS	 += -lpthread -lrt
    155   LDFLAGS += -rdynamic
    156 endif
    157 ifeq ($(CONFIG_TARGET_OS), OpenBSD)
    158   LIBS	 += -lpthread
    159   LDFLAGS += -rdynamic
    160 endif
    161 ifeq ($(CONFIG_TARGET_OS), NetBSD)
    162   LIBS	 += -lpthread -lrt
    163   LDFLAGS += -rdynamic
    164 endif
    165 ifeq ($(CONFIG_TARGET_OS), DragonFly)
    166   SOURCE += trim.c
    167   LIBS	 += -lpthread -lrt
    168   LDFLAGS += -rdynamic
    169 endif
    170 ifeq ($(CONFIG_TARGET_OS), AIX)
    171   LIBS	 += -lpthread -ldl -lrt
    172   CPPFLAGS += -D_LARGE_FILES -D__ppc__
    173   LDFLAGS += -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000
    174 endif
    175 ifeq ($(CONFIG_TARGET_OS), HP-UX)
    176   LIBS   += -lpthread -ldl -lrt
    177   CFLAGS += -D_LARGEFILE64_SOURCE -D_XOPEN_SOURCE_EXTENDED
    178 endif
    179 ifeq ($(CONFIG_TARGET_OS), Darwin)
    180   LIBS	 += -lpthread -ldl
    181 endif
    182 ifneq (,$(findstring CYGWIN,$(CONFIG_TARGET_OS)))
    183   SOURCE += os/windows/posix.c
    184   LIBS	 += -lpthread -lpsapi -lws2_32
    185   CFLAGS += -DPSAPI_VERSION=1 -Ios/windows/posix/include -Wno-format -static
    186 endif
    187 
    188 OBJS := $(SOURCE:.c=.o)
    189 
    190 FIO_OBJS = $(OBJS) fio.o
    191 
    192 GFIO_OBJS = $(OBJS) gfio.o graph.o tickmarks.o ghelpers.o goptions.o gerror.o \
    193 			gclient.o gcompat.o cairo_text_helpers.o printing.o
    194 
    195 ifdef CONFIG_ARITHMETIC
    196 FIO_OBJS += lex.yy.o y.tab.o
    197 GFIO_OBJS += lex.yy.o y.tab.o
    198 endif
    199 
    200 -include $(OBJS:.o=.d)
    201 
    202 T_SMALLOC_OBJS = t/stest.o
    203 T_SMALLOC_OBJS += gettime.o mutex.o smalloc.o t/log.o t/debug.o t/arch.o
    204 T_SMALLOC_PROGS = t/stest
    205 
    206 T_IEEE_OBJS = t/ieee754.o
    207 T_IEEE_OBJS += lib/ieee754.o
    208 T_IEEE_PROGS = t/ieee754
    209 
    210 T_ZIPF_OBS = t/genzipf.o
    211 T_ZIPF_OBJS += t/log.o lib/ieee754.o lib/rand.o lib/pattern.o lib/zipf.o \
    212 		lib/strntol.o lib/gauss.o t/genzipf.o oslib/strcasestr.o
    213 T_ZIPF_PROGS = t/fio-genzipf
    214 
    215 T_AXMAP_OBJS = t/axmap.o
    216 T_AXMAP_OBJS += lib/lfsr.o lib/axmap.o
    217 T_AXMAP_PROGS = t/axmap
    218 
    219 T_LFSR_TEST_OBJS = t/lfsr-test.o
    220 T_LFSR_TEST_OBJS += lib/lfsr.o gettime.o t/log.o t/debug.o t/arch.o
    221 T_LFSR_TEST_PROGS = t/lfsr-test
    222 
    223 T_GEN_RAND_OBJS = t/gen-rand.o
    224 T_GEN_RAND_OBJS += t/log.o t/debug.o lib/rand.o lib/pattern.o lib/strntol.o \
    225 			oslib/strcasestr.o
    226 T_GEN_RAND_PROGS = t/gen-rand
    227 
    228 ifeq ($(CONFIG_TARGET_OS), Linux)
    229 T_BTRACE_FIO_OBJS = t/btrace2fio.o
    230 T_BTRACE_FIO_OBJS += fifo.o lib/flist_sort.o t/log.o oslib/linux-dev-lookup.o
    231 T_BTRACE_FIO_PROGS = t/fio-btrace2fio
    232 endif
    233 
    234 T_DEDUPE_OBJS = t/dedupe.o
    235 T_DEDUPE_OBJS += lib/rbtree.o t/log.o mutex.o smalloc.o gettime.o crc/md5.o \
    236 		lib/memalign.o lib/bloom.o t/debug.o crc/xxhash.o t/arch.o \
    237 		crc/murmur3.o crc/crc32c.o crc/crc32c-intel.o crc/crc32c-arm64.o crc/fnv.o
    238 T_DEDUPE_PROGS = t/fio-dedupe
    239 
    240 T_VS_OBJS = t/verify-state.o t/log.o crc/crc32c.o crc/crc32c-intel.o crc/crc32c-arm64.o t/debug.o
    241 T_VS_PROGS = t/fio-verify-state
    242 
    243 T_PIPE_ASYNC_OBJS = t/read-to-pipe-async.o
    244 T_PIPE_ASYNC_PROGS = t/read-to-pipe-async
    245 
    246 T_MEMLOCK_OBJS = t/memlock.o
    247 T_MEMLOCK_PROGS = t/memlock
    248 
    249 T_OBJS = $(T_SMALLOC_OBJS)
    250 T_OBJS += $(T_IEEE_OBJS)
    251 T_OBJS += $(T_ZIPF_OBJS)
    252 T_OBJS += $(T_AXMAP_OBJS)
    253 T_OBJS += $(T_LFSR_TEST_OBJS)
    254 T_OBJS += $(T_GEN_RAND_OBJS)
    255 T_OBJS += $(T_BTRACE_FIO_OBJS)
    256 T_OBJS += $(T_DEDUPE_OBJS)
    257 T_OBJS += $(T_VS_OBJS)
    258 T_OBJS += $(T_PIPE_ASYNC_OBJS)
    259 T_OBJS += $(T_MEMLOCK_OBJS)
    260 
    261 ifneq (,$(findstring CYGWIN,$(CONFIG_TARGET_OS)))
    262     T_DEDUPE_OBJS += os/windows/posix.o lib/hweight.o
    263     T_SMALLOC_OBJS += os/windows/posix.o lib/hweight.o
    264     T_LFSR_TEST_OBJS += os/windows/posix.o lib/hweight.o
    265 endif
    266 
    267 T_TEST_PROGS = $(T_SMALLOC_PROGS)
    268 T_TEST_PROGS += $(T_IEEE_PROGS)
    269 T_PROGS += $(T_ZIPF_PROGS)
    270 T_TEST_PROGS += $(T_AXMAP_PROGS)
    271 T_TEST_PROGS += $(T_LFSR_TEST_PROGS)
    272 T_TEST_PROGS += $(T_GEN_RAND_PROGS)
    273 T_PROGS += $(T_BTRACE_FIO_PROGS)
    274 T_PROGS += $(T_DEDUPE_PROGS)
    275 T_PROGS += $(T_VS_PROGS)
    276 
    277 PROGS += $(T_PROGS)
    278 
    279 ifneq ($(findstring $(MAKEFLAGS),s),s)
    280 ifndef V
    281 	QUIET_CC	= @echo '   ' CC $@;
    282 	QUIET_LINK	= @echo ' ' LINK $@;
    283 	QUIET_DEP	= @echo '  ' DEP $@;
    284 	QUIET_YACC	= @echo ' ' YACC $@;
    285 	QUIET_LEX	= @echo '  ' LEX $@;
    286 endif
    287 endif
    288 
    289 ifeq ($(CONFIG_TARGET_OS), SunOS)
    290 	INSTALL = ginstall
    291 else
    292 	INSTALL = install
    293 endif
    294 prefix = $(INSTALL_PREFIX)
    295 bindir = $(prefix)/bin
    296 
    297 ifeq ($(CONFIG_TARGET_OS), Darwin)
    298 mandir = /usr/share/man
    299 sharedir = /usr/share/fio
    300 else
    301 mandir = $(prefix)/man
    302 sharedir = $(prefix)/share/fio
    303 endif
    304 
    305 all: $(PROGS) $(T_TEST_PROGS) $(SCRIPTS) FORCE
    306 
    307 .PHONY: all install clean test
    308 .PHONY: FORCE cscope
    309 
    310 FIO-VERSION-FILE: FORCE
    311 	@$(SHELL) $(SRCDIR)/FIO-VERSION-GEN
    312 -include FIO-VERSION-FILE
    313 
    314 override CFLAGS += -DFIO_VERSION='"$(FIO_VERSION)"'
    315 
    316 %.o : %.c
    317 	@mkdir -p $(dir $@)
    318 	$(QUIET_CC)$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -c $<
    319 	@$(CC) -MM $(CFLAGS) $(CPPFLAGS) $(SRCDIR)/$*.c > $*.d
    320 	@mv -f $*.d $*.d.tmp
    321 	@sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d
    322 	@sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -w 1 | \
    323 		sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
    324 	@rm -f $*.d.tmp
    325 
    326 ifdef CONFIG_ARITHMETIC
    327 lex.yy.c: exp/expression-parser.l
    328 ifdef CONFIG_LEX_USE_O
    329 	$(QUIET_LEX)$(LEX) -o $@ $<
    330 else
    331 	$(QUIET_LEX)$(LEX) $<
    332 endif
    333 
    334 lex.yy.o: lex.yy.c y.tab.h
    335 	$(QUIET_CC)$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -c $<
    336 
    337 y.tab.o: y.tab.c y.tab.h
    338 	$(QUIET_CC)$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -c $<
    339 
    340 y.tab.c: exp/expression-parser.y
    341 	$(QUIET_YACC)$(YACC) -o $@ -l -d -b y $<
    342 
    343 y.tab.h: y.tab.c
    344 
    345 lexer.h: lex.yy.c
    346 
    347 exp/test-expression-parser.o: exp/test-expression-parser.c
    348 	$(QUIET_CC)$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -c $<
    349 exp/test-expression-parser: exp/test-expression-parser.o
    350 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) $< y.tab.o lex.yy.o -o $@ $(LIBS)
    351 
    352 parse.o: lex.yy.o y.tab.o
    353 endif
    354 
    355 init.o: init.c FIO-VERSION-FILE
    356 	@mkdir -p $(dir $@)
    357 	$(QUIET_CC)$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -c $<
    358 	@$(CC) -MM $(CFLAGS) $(CPPFLAGS) $(SRCDIR)/$*.c > $*.d
    359 	@mv -f $*.d $*.d.tmp
    360 	@sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d
    361 	@sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -w 1 | \
    362 		sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
    363 	@rm -f $*.d.tmp
    364 
    365 gcompat.o: gcompat.c gcompat.h
    366 	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c $<
    367 
    368 goptions.o: goptions.c goptions.h
    369 	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c $<
    370 
    371 ghelpers.o: ghelpers.c ghelpers.h
    372 	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c $<
    373 
    374 gerror.o: gerror.c gerror.h
    375 	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c $<
    376 
    377 gclient.o: gclient.c gclient.h
    378 	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c $<
    379 
    380 gfio.o: gfio.c ghelpers.c
    381 	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c $<
    382 
    383 graph.o: graph.c graph.h
    384 	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c $<
    385 
    386 cairo_text_helpers.o: cairo_text_helpers.c cairo_text_helpers.h
    387 	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c $<
    388 
    389 printing.o: printing.c printing.h
    390 	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c $<
    391 
    392 t/read-to-pipe-async: $(T_PIPE_ASYNC_OBJS)
    393 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_PIPE_ASYNC_OBJS) $(LIBS)
    394 
    395 t/memlock: $(T_MEMLOCK_OBJS)
    396 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_MEMLOCK_OBJS) $(LIBS)
    397 
    398 t/stest: $(T_SMALLOC_OBJS)
    399 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_SMALLOC_OBJS) $(LIBS)
    400 
    401 t/ieee754: $(T_IEEE_OBJS)
    402 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_IEEE_OBJS) $(LIBS)
    403 
    404 fio: $(FIO_OBJS)
    405 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(FIO_OBJS) $(LIBS) $(HDFSLIB)
    406 
    407 gfio: $(GFIO_OBJS)
    408 	$(QUIET_LINK)$(CC) $(filter-out -static, $(LDFLAGS)) -o gfio $(GFIO_OBJS) $(LIBS) $(GFIO_LIBS) $(GTK_LDFLAGS) $(HDFSLIB)
    409 
    410 t/fio-genzipf: $(T_ZIPF_OBJS)
    411 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_ZIPF_OBJS) $(LIBS)
    412 
    413 t/axmap: $(T_AXMAP_OBJS)
    414 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_AXMAP_OBJS) $(LIBS)
    415 
    416 t/lfsr-test: $(T_LFSR_TEST_OBJS)
    417 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_LFSR_TEST_OBJS) $(LIBS)
    418 
    419 t/gen-rand: $(T_GEN_RAND_OBJS)
    420 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_GEN_RAND_OBJS) $(LIBS)
    421 
    422 ifeq ($(CONFIG_TARGET_OS), Linux)
    423 t/fio-btrace2fio: $(T_BTRACE_FIO_OBJS)
    424 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_BTRACE_FIO_OBJS) $(LIBS)
    425 endif
    426 
    427 t/fio-dedupe: $(T_DEDUPE_OBJS)
    428 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_DEDUPE_OBJS) $(LIBS)
    429 
    430 t/fio-verify-state: $(T_VS_OBJS)
    431 	$(QUIET_LINK)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_VS_OBJS) $(LIBS)
    432 
    433 clean: FORCE
    434 	@rm -f .depend $(FIO_OBJS) $(GFIO_OBJS) $(OBJS) $(T_OBJS) $(PROGS) $(T_PROGS) $(T_TEST_PROGS) core.* core gfio FIO-VERSION-FILE *.d lib/*.d oslib/*.d crc/*.d engines/*.d profiles/*.d t/*.d config-host.mak config-host.h y.tab.[ch] lex.yy.c exp/*.[do] lexer.h
    435 	@rm -rf  doc/output
    436 
    437 distclean: clean FORCE
    438 	@rm -f cscope.out fio.pdf fio_generate_plots.pdf fio2gnuplot.pdf fiologparser_hist.pdf
    439 
    440 cscope:
    441 	@cscope -b -R
    442 
    443 tools/plot/fio2gnuplot.1:
    444 	@cat tools/plot/fio2gnuplot.manpage | txt2man -t fio2gnuplot >  tools/plot/fio2gnuplot.1
    445 
    446 doc: tools/plot/fio2gnuplot.1
    447 	@man -t ./fio.1 | ps2pdf - fio.pdf
    448 	@man -t tools/fio_generate_plots.1 | ps2pdf - fio_generate_plots.pdf
    449 	@man -t tools/plot/fio2gnuplot.1 | ps2pdf - fio2gnuplot.pdf
    450 	@man -t tools/hist/fiologparser_hist.py.1 | ps2pdf - fiologparser_hist.pdf
    451 
    452 test: fio
    453 	./fio --minimal --thread --ioengine=null --runtime=1s --name=nulltest --rw=randrw --iodepth=2 --norandommap --random_generator=tausworthe64 --size=16T --name=verifynulltest --rw=write --verify=crc32c --verify_state_save=0 --size=100M
    454 
    455 install: $(PROGS) $(SCRIPTS) tools/plot/fio2gnuplot.1 FORCE
    456 	$(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
    457 	$(INSTALL) $(PROGS) $(SCRIPTS) $(DESTDIR)$(bindir)
    458 	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
    459 	$(INSTALL) -m 644 $(SRCDIR)/fio.1 $(DESTDIR)$(mandir)/man1
    460 	$(INSTALL) -m 644 $(SRCDIR)/tools/fio_generate_plots.1 $(DESTDIR)$(mandir)/man1
    461 	$(INSTALL) -m 644 $(SRCDIR)/tools/plot/fio2gnuplot.1 $(DESTDIR)$(mandir)/man1
    462 	$(INSTALL) -m 644 $(SRCDIR)/tools/hist/fiologparser_hist.py.1 $(DESTDIR)$(mandir)/man1
    463 	$(INSTALL) -m 755 -d $(DESTDIR)$(sharedir)
    464 	$(INSTALL) -m 644 $(SRCDIR)/tools/plot/*gpm $(DESTDIR)$(sharedir)/
    465