Makefile revision 3d43382c7864753728b181ac356222d67bdd4a3f
167bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeCC	= gcc
267bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeDEBUGFLAGS = -D_FORTIFY_SOURCE=2 -DFIO_INC_DEBUG
367bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeCPPFLAGS= -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \
467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe	$(DEBUGFLAGS)
567bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeOPTFLAGS= -O3 -fno-omit-frame-pointer -g $(EXTFLAGS)
667bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeCFLAGS	= -std=gnu99 -Wwrite-strings -Wall $(OPTFLAGS)
767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeLIBS	= -lm -lz $(EXTLIBS)
867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboePROGS	= fio
9d443abcfe076b9316bc8165366b36eb5e02a77aaJens AxboeSCRIPTS = fio_generate_plots
1067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeUNAME  := $(shell uname)
1167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
12d443abcfe076b9316bc8165366b36eb5e02a77aaJens AxboeGTK_CFLAGS = `pkg-config --cflags gtk+-2.0 gthread-2.0`
1367bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeGTK_LDFLAGS = `pkg-config --libs gtk+-2.0 gthread-2.0`
1467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
1567bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeSOURCE := gettime.c ioengines.c init.c stat.c log.c time.c filesetup.c \
1667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe		eta.c verify.c memory.c io_u.c parse.c mutex.c options.c \
17af4862b3447e35d038b6c117631d9c03777ab79eJens Axboe		lib/rbtree.c smalloc.c filehash.c profile.c debug.c lib/rand.c \
189195552e8fca86b682a86fc7ab0fb6eacb433f16Daniel Gollub		lib/num2str.c lib/ieee754.c $(wildcard crc/*.c) engines/cpu.c \
19af4862b3447e35d038b6c117631d9c03777ab79eJens Axboe		engines/mmap.c engines/sync.c engines/null.c engines/net.c \
20eb19930cf6e8315417b01e00669446a383c69690Jens Axboe		memalign.c server.c client.c iolog.c backend.c libfio.c flow.c \
21af4862b3447e35d038b6c117631d9c03777ab79eJens Axboe		cconv.c lib/prio_tree.c
22af4862b3447e35d038b6c117631d9c03777ab79eJens Axboe
23265a202706aaa538297599f4c683b781a3ecaedbErwan Veluifeq ($(UNAME), Linux)
24af4862b3447e35d038b6c117631d9c03777ab79eJens Axboe  SOURCE += diskutil.c fifo.c blktrace.c helpers.c cgroup.c trim.c \
2591f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe		engines/libaio.c engines/posixaio.c engines/sg.c \
2691f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe		engines/splice.c engines/syslet-rw.c engines/guasi.c \
2791f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe		engines/binject.c engines/rdma.c profiles/tiobench.c
2891f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe  LIBS += -lpthread -ldl -lrt -laio
29ea783f87082e59a511c4d720d287e0de9fccb1b5Jens Axboe  LDFLAGS += -rdynamic
30d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cranendif
31057754389863aa18cbf36b1f2a556a422ea2f4b5Jens Axboeifeq ($(UNAME), SunOS)
32c7c6cb4cb3114ec4ce3107e15c184e161b50122eJens Axboe  SOURCE += fifo.c lib/strsep.c helpers.c engines/posixaio.c \
33d48a9799a3d3cbe3c41658d6e41d6791b33e926cJens Axboe		engines/solarisaio.c
342dc1cbb52f73303d479a72e99930a2838c4b0fa4Jens Axboe  LIBS	 += -lpthread -ldl -laio -lrt -lnsl -lsocket
359a0db1e22a016bcdd91646b2e275051ff21c3038Jens Axboe  CPPFLAGS += -D__EXTENSIONS__
36836fcc0fceb233ebcc41ee63b4ea5cae20b678a4Jens Axboeendif
37d4afedfd152cea890ffa7d45bf1664fb70218c45Jens Axboeifeq ($(UNAME), FreeBSD)
3838a812d7fa79a673855efb6324c8fc68b92b89c1Jens Axboe  SOURCE += helpers.c engines/posixaio.c
39b0e1bb93060a19560bc28718f622e16ac17c5c67Jens Axboe  LIBS	 += -lpthread -lrt
4067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  LDFLAGS += -rdynamic
41d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlikendif
42d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlikifeq ($(UNAME), NetBSD)
43d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlik  SOURCE += helpers.c engines/posixaio.c
44d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlik  LIBS	 += -lpthread -lrt
45d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlik  LDFLAGS += -rdynamic
46d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlikendif
47d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlikifeq ($(UNAME), AIX)
48c81f9347e5849a6b97a02f215f1c474e27c79f1aBruce Cran  SOURCE += fifo.c helpers.c lib/getopt_long.c engines/posixaio.c
49c81f9347e5849a6b97a02f215f1c474e27c79f1aBruce Cran  LIBS	 += -lpthread -ldl -lrt
50c81f9347e5849a6b97a02f215f1c474e27c79f1aBruce Cran  CPPFLAGS += -D_LARGE_FILES -D__ppc__
5167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  LDFLAGS += -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000
5267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
5367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeifeq ($(UNAME), HP-UX)
5467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  SOURCE += fifo.c helpers.c lib/getopt_long.c lib/strsep.c engines/posixaio.c
5567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  LIBS   += -lpthread -ldl -lrt
5667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  CFLAGS += -D_LARGEFILE64_SOURCE
5767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
5867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeifeq ($(UNAME), Darwin)
5967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  SOURCE += helpers.c engines/posixaio.c
6067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  LIBS	 += -lpthread -ldl
6167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
6267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeifneq (,$(findstring CYGWIN,$(UNAME)))
6367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  SOURCE := $(filter-out engines/mmap.c,$(SOURCE))
6467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  SOURCE += engines/windowsaio.c os/windows/posix.c
6567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  LIBS	 += -lpthread -lpsapi -lws2_32
6667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  CFLAGS += -DPSAPI_VERSION=1 -Ios/windows/posix/include -Wno-format
6767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  CC	  = x86_64-w64-mingw32-gcc
6867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
6967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
7067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeOBJS = $(SOURCE:.c=.o)
7167bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeFIO_OBJS = $(OBJS) fio.o
7267bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeGFIO_OBJS = $(OBJS) gfio.o graph.o tickmarks.o ghelpers.o goptions.o gerror.o \
7367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe			gclient.o
7467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
7567bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_SMALLOC_OBJS = t/stest.o
7667bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_SMALLOC_OBJS += mutex.o smalloc.o t/log.o
7767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_SMALLOC_PROGS = t/stest
7867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
7967bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_IEEE_OBJS = t/ieee754.o
8067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_IEEE_OBJS += ieee754.o
8167bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_IEEE_PROGS = t/ieee754
8267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
8367bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_OBJS = $(T_SMALLOC_OBJS)
844700b23465687c7d3de7820341fa96e506e967b2Jens AxboeT_OBJS += $(T_IEEE_OBJS)
854700b23465687c7d3de7820341fa96e506e967b2Jens Axboe
864700b23465687c7d3de7820341fa96e506e967b2Jens Axboeifneq ($(findstring $(MAKEFLAGS),s),s)
87fc5c03455598ecb3250506e741c74bade0dae6d8Daniel Gollubifndef V
88fc5c03455598ecb3250506e741c74bade0dae6d8Daniel Gollub	QUIET_CC	= @echo '   ' CC $@;
89fc5c03455598ecb3250506e741c74bade0dae6d8Daniel Gollub	QUIET_DEP	= @echo '   ' DEP $@;
9067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
9167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
9267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
939ad8da8217db155d2b48fe7bed91da794a71d071Jens AxboeINSTALL = install
949ad8da8217db155d2b48fe7bed91da794a71d071Jens Axboeprefix = /usr/local
959ad8da8217db155d2b48fe7bed91da794a71d071Jens Axboebindir = $(prefix)/bin
9667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
9767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeifeq ($(UNAME), Darwin)
9867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboemandir = /usr/share/man
9967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeelse
10067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboemandir = $(prefix)/man
10167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
1020e55d6b0b86bc0fe49cea1ecfec80518a988dc51chenh
1030e55d6b0b86bc0fe49cea1ecfec80518a988dc51chenhall: .depend $(PROGS) $(SCRIPTS) FORCE
104cb92c7fe546d7da2b982a13e2ad97fa991e16149chenh
105cb92c7fe546d7da2b982a13e2ad97fa991e16149chenh.PHONY: all install clean
10654fe20ff2633b399e6965b6c5649166764ff546cchenh.PHONY: FORCE cscope
10754fe20ff2633b399e6965b6c5649166764ff546cchenh
10854fe20ff2633b399e6965b6c5649166764ff546cchenhFIO-VERSION-FILE: FORCE
1090e55d6b0b86bc0fe49cea1ecfec80518a988dc51chenh	@$(SHELL_PATH) ./FIO-VERSION-GEN
110d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran-include FIO-VERSION-FILE
11153cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carroll
11267bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeCFLAGS += -DFIO_VERSION='"$(FIO_VERSION)"'
11342a80e374660c1cd108342bab7158670b6e3b7dcJens Axboe
11467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe.c.o: .depend FORCE
115213a01b0699d88b20dfb9ed78db1f293a85d2bdcJens Axboe	$(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(CPPFLAGS) $<
116d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran
11753cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carrollgoptions.o: goptions.c goptions.h
11842a80e374660c1cd108342bab7158670b6e3b7dcJens Axboe	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c goptions.c
11942a80e374660c1cd108342bab7158670b6e3b7dcJens Axboe
120ec5c6b125c1eab992882602158bab54957aa733dAaron Carrollghelpers.o: ghelpers.c ghelpers.h
121ec5c6b125c1eab992882602158bab54957aa733dAaron Carroll	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c ghelpers.c
122ec5c6b125c1eab992882602158bab54957aa733dAaron Carroll
12353cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carrollgerror.o: gerror.c gerror.h
1247366ad05740d4cbbe5b43daa3b9b9efe74df34b3Jens Axboe	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c gerror.c
125d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran
126d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Crangclient.o: gclient.c gclient.h
12753cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carroll	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c gclient.c
128d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran
129213a01b0699d88b20dfb9ed78db1f293a85d2bdcJens Axboegfio.o: gfio.c ghelpers.c
130d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c gfio.c
1313cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn
1323cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohngraph.o: graph.c graph.h
1333cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn	$(QUIET_CC)$(CC) $(CFLAGS) $(GTK_CFLAGS) $(CPPFLAGS) -c graph.c
1343cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn
13553cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carrollt/stest: $(T_SMALLOC_OBJS)
136d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran	$(QUIET_CC)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_SMALLOC_OBJS) $(LIBS) $(LDFLAGS)
137213a01b0699d88b20dfb9ed78db1f293a85d2bdcJens Axboe
138d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Crant/ieee754: $(T_IEEE_OBJS)
13953cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carroll	$(QUIET_CC)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_IEEE_OBJS) $(LIBS) $(LDFLAGS)
140d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran
141d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cranfio: $(FIO_OBJS) FORCE
14248b35be009138ddca8d341f7767a1364400b6c06Michael Perzl	$(QUIET_CC)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(FIO_OBJS) $(LIBS) $(LDFLAGS)
143d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran
14453cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carrollgfio: $(GFIO_OBJS)
145b5ffb752790d4c88a18e27aaf970b065b3e4a56cJens Axboe	$(QUIET_CC)$(CC) $(LIBS) -o gfio $(GFIO_OBJS) $(LIBS) $(GTK_LDFLAGS)
14667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
147c00a22894b82ff53b42c1e741a7b4828199a1388Jens Axboe.depend: $(SOURCE)
14853cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carroll	$(QUIET_DEP)$(CC) -MM $(CFLAGS) $(CPPFLAGS) $(SOURCE) 1> .depend
149d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran
150d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran$(PROGS): .depend FORCE
15153cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carroll
15293bcfd20e37cef8cec350fe06d3a086724c9f257Bruce Cranclean: FORCE
1534700b23465687c7d3de7820341fa96e506e967b2Jens Axboe	-rm -f .depend $(GFIO_OBJS) $(FIO_OBJS) $(T_OBJS) $(PROGS) $(T_PROGS) core.* core gfio FIO-VERSION-FILE
15493bcfd20e37cef8cec350fe06d3a086724c9f257Bruce Cran
1559aa5fe3290fd49c70e498d5e072a5b27e1c3034fBruce Crancscope:
156d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran	@cscope -b -R
157d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran
1589b8365618309572d8fd2579c8ea3132db89f843fBruce Craninstall: $(PROGS) $(SCRIPTS) FORCE
15990b7a96d9573a14f20470af2aa0dd4e60611a477Jens Axboe	$(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
1608232e2855c87697a95d00d920d1fd11b30d0fcaaStephen M. Cameron	$(INSTALL) $(PROGS) $(SCRIPTS) $(DESTDIR)$(bindir)
16188b635b84d831b109f0807922449fa7a900f5dbdStephen M. Cameron	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
162cc481fd2dca2204544ac3bbba754bbf108dc96f7Jens Axboe	$(INSTALL) -m 644 fio.1 $(DESTDIR)$(mandir)/man1
163cc481fd2dca2204544ac3bbba754bbf108dc96f7Jens Axboe	$(INSTALL) -m 644 fio_generate_plots.1 $(DESTDIR)$(mandir)/man1
164cc481fd2dca2204544ac3bbba754bbf108dc96f7Jens Axboe
16588b635b84d831b109f0807922449fa7a900f5dbdStephen M. Cameronifneq ($(wildcard .depend),)
16688b635b84d831b109f0807922449fa7a900f5dbdStephen M. Cameroninclude .depend
167cc481fd2dca2204544ac3bbba754bbf108dc96f7Jens Axboeendif
16888b635b84d831b109f0807922449fa7a900f5dbdStephen M. Cameron
16988b635b84d831b109f0807922449fa7a900f5dbdStephen M. Cameron
170f67d6ee2d0988de577f6f3d7e303d6a18a44e4a0Jens Axboe