Makefile revision 61f78f3ada575804c6d4ba0936cf64c17728eaba
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= -O2 -fno-omit-frame-pointer -g $(EXTFLAGS)
667bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeCFLAGS	= -std=gnu99 -Wwrite-strings -Wall $(OPTFLAGS)
767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeLIBS	= -lm $(EXTLIBS)
867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboePROGS	= fio
9d443abcfe076b9316bc8165366b36eb5e02a77aaJens AxboeSCRIPTS = fio_generate_plots
1067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeUNAME  := $(shell uname)
1167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
12d443abcfe076b9316bc8165366b36eb5e02a77aaJens AxboeSOURCE = gettime.c fio.c ioengines.c init.c stat.c log.c time.c filesetup.c \
1367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe		eta.c verify.c memory.c io_u.c parse.c mutex.c options.c \
1467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe		rbtree.c smalloc.c filehash.c profile.c debug.c lib/rand.c \
1567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe		lib/num2str.c $(wildcard crc/*.c) engines/cpu.c \
1667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe		engines/mmap.c engines/sync.c engines/null.c engines/net.c \
17af4862b3447e35d038b6c117631d9c03777ab79eJens Axboe		memalign.c server.c client.c iolog.c ieee754.c
189195552e8fca86b682a86fc7ab0fb6eacb433f16Daniel Gollub
19af4862b3447e35d038b6c117631d9c03777ab79eJens Axboeifeq ($(UNAME), Linux)
201be2ed936f415a1d0a30078cf1aca3f4c9d8cf6aJens Axboe  SOURCE += diskutil.c fifo.c blktrace.c helpers.c cgroup.c trim.c \
21af4862b3447e35d038b6c117631d9c03777ab79eJens Axboe		engines/libaio.c engines/posixaio.c engines/sg.c \
22af4862b3447e35d038b6c117631d9c03777ab79eJens Axboe		engines/splice.c engines/syslet-rw.c engines/guasi.c \
23265a202706aaa538297599f4c683b781a3ecaedbErwan Velu		engines/binject.c engines/rdma.c profiles/tiobench.c
24af4862b3447e35d038b6c117631d9c03777ab79eJens Axboe  LIBS += -lpthread -ldl -lrt -laio
2591f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe  CFLAGS += -rdynamic
2691f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeendif
2791f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboeifeq ($(UNAME), SunOS)
2891f94d5b88b72c300be4f27ef6630e16af890db6Jens Axboe  SOURCE += fifo.c lib/strsep.c helpers.c engines/posixaio.c \
29ea783f87082e59a511c4d720d287e0de9fccb1b5Jens Axboe		engines/solarisaio.c
30d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran  LIBS	 += -lpthread -ldl -laio -lrt -lnsl -lsocket
31057754389863aa18cbf36b1f2a556a422ea2f4b5Jens Axboe  CPPFLAGS += -D__EXTENSIONS__
32c7c6cb4cb3114ec4ce3107e15c184e161b50122eJens Axboeendif
33d48a9799a3d3cbe3c41658d6e41d6791b33e926cJens Axboeifeq ($(UNAME), FreeBSD)
342dc1cbb52f73303d479a72e99930a2838c4b0fa4Jens Axboe  SOURCE += helpers.c engines/posixaio.c
359a0db1e22a016bcdd91646b2e275051ff21c3038Jens Axboe  LIBS	 += -lpthread -lrt
36836fcc0fceb233ebcc41ee63b4ea5cae20b678a4Jens Axboe  CFLAGS += -rdynamic
37d4afedfd152cea890ffa7d45bf1664fb70218c45Jens Axboeendif
3838a812d7fa79a673855efb6324c8fc68b92b89c1Jens Axboeifeq ($(UNAME), NetBSD)
39b0e1bb93060a19560bc28718f622e16ac17c5c67Jens Axboe  SOURCE += helpers.c engines/posixaio.c
4067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  LIBS	 += -lpthread -lrt
41d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlik  CFLAGS += -rdynamic
42d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlikendif
43468a18c9486935283b96f1ed0fb64a6a35da5548Fabrice Bacchellaifeq ($(UNAME), AIX)
44d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlik  SOURCE += fifo.c helpers.c lib/getopt_long.c engines/posixaio.c
45d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlik  LIBS	 += -lpthread -ldl -lrt
46d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlik  CPPFLAGS += -D_LARGE_FILES -D__ppc__
47d60aa36e65b46320bc8db7b2f6a07e84f96ac86aManish Mandlik  LDFLAGS += -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000
48c81f9347e5849a6b97a02f215f1c474e27c79f1aBruce Cranendif
49c81f9347e5849a6b97a02f215f1c474e27c79f1aBruce Cranifeq ($(UNAME), HP-UX)
50c81f9347e5849a6b97a02f215f1c474e27c79f1aBruce Cran  SOURCE += fifo.c helpers.c lib/getopt_long.c lib/strsep.c engines/posixaio.c
5167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  LIBS   += -lpthread -ldl -lrt
5267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  CFLAGS += -D_LARGEFILE64_SOURCE
5367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
5467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeifeq ($(UNAME), Darwin)
5567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  SOURCE += helpers.c engines/posixaio.c
5667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  LIBS	 += -lpthread -ldl
5767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
5867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeifneq (,$(findstring CYGWIN,$(UNAME)))
5967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  SOURCE += engines/windowsaio.c
6067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  LIBS	 += -lpthread -lrt -lpsapi
6167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe  CFLAGS += -DPSAPI_VERSION=1
6267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
6367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
6467bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeOBJS = $(SOURCE:.c=.o)
6567bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
6667bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_SMALLOC_OBJS = t/stest.o
6767bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_SMALLOC_OBJS += mutex.o smalloc.o t/log.o
6867bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_SMALLOC_PROGS = t/stest
6967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
7067bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_IEEE_OBJS = t/ieee754.o
7167bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_IEEE_OBJS += ieee754.o
7267bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_IEEE_PROGS = t/ieee754
7367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
7467bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_OBJS = $(T_SMALLOC_OBJS)
7567bf982340d95ca98098ea050b54b4c7adb116c0Jens AxboeT_OBJS += $(T_IEEE_OBJS)
7667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
7767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeifneq ($(findstring $(MAKEFLAGS),s),s)
7867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeifndef V
7967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe	QUIET_CC	= @echo '   ' CC $@;
8067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe	QUIET_DEP	= @echo '   ' DEP $@;
8167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
8267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeendif
8367bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
844700b23465687c7d3de7820341fa96e506e967b2Jens AxboeINSTALL = install
854700b23465687c7d3de7820341fa96e506e967b2Jens Axboeprefix = /usr/local
864700b23465687c7d3de7820341fa96e506e967b2Jens Axboebindir = $(prefix)/bin
87fc5c03455598ecb3250506e741c74bade0dae6d8Daniel Gollubmandir = $(prefix)/man
88fc5c03455598ecb3250506e741c74bade0dae6d8Daniel Gollub
89fc5c03455598ecb3250506e741c74bade0dae6d8Daniel Golluball: .depend $(PROGS) $(SCRIPTS)
9067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
9167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe.c.o: .depend
9267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe	$(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(CPPFLAGS) $<
939ad8da8217db155d2b48fe7bed91da794a71d071Jens Axboe
949ad8da8217db155d2b48fe7bed91da794a71d071Jens Axboet/stest: $(T_SMALLOC_OBJS)
959ad8da8217db155d2b48fe7bed91da794a71d071Jens Axboe	$(QUIET_CC)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_SMALLOC_OBJS) $(LIBS) $(LDFLAGS)
9667bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
9767bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboet/ieee754: $(T_IEEE_OBJS)
9867bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe	$(QUIET_CC)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_IEEE_OBJS) $(LIBS) $(LDFLAGS)
9967bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe
10067bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboefio: $(OBJS)
10167bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe	$(QUIET_CC)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(OBJS) $(LIBS) $(LDFLAGS)
1020e55d6b0b86bc0fe49cea1ecfec80518a988dc51chenh
1030e55d6b0b86bc0fe49cea1ecfec80518a988dc51chenh.depend: $(SOURCE)
104cb92c7fe546d7da2b982a13e2ad97fa991e16149chenh	$(QUIET_DEP)$(CC) -MM $(CFLAGS) $(CPPFLAGS) $(SOURCE) 1> .depend
105cb92c7fe546d7da2b982a13e2ad97fa991e16149chenh
10654fe20ff2633b399e6965b6c5649166764ff546cchenh$(PROGS): .depend
10754fe20ff2633b399e6965b6c5649166764ff546cchenh
10854fe20ff2633b399e6965b6c5649166764ff546cchenhclean:
1090e55d6b0b86bc0fe49cea1ecfec80518a988dc51chenh	-rm -f .depend $(OBJS) $(T_OBJS) $(PROGS) $(T_PROGS) core.* core
110d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran
11153cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carrollcscope:
11267bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboe	@cscope -b -R
11342a80e374660c1cd108342bab7158670b6e3b7dcJens Axboe
11467bf982340d95ca98098ea050b54b4c7adb116c0Jens Axboeinstall: $(PROGS) $(SCRIPTS)
115213a01b0699d88b20dfb9ed78db1f293a85d2bdcJens Axboe	$(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
116d015e398e49f1c8d425906b8c1a3861ecc4d851aBruce Cran	$(INSTALL) $(PROGS) $(SCRIPTS) $(DESTDIR)$(bindir)
11753cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carroll	$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1
11842a80e374660c1cd108342bab7158670b6e3b7dcJens Axboe	$(INSTALL) -m 644 fio.1 $(DESTDIR)$(mandir)/man1
11942a80e374660c1cd108342bab7158670b6e3b7dcJens Axboe	$(INSTALL) -m 644 fio_generate_plots.1 $(DESTDIR)$(mandir)/man1
120ec5c6b125c1eab992882602158bab54957aa733dAaron Carroll
121ec5c6b125c1eab992882602158bab54957aa733dAaron Carrollifneq ($(wildcard .depend),)
122ec5c6b125c1eab992882602158bab54957aa733dAaron Carrollinclude .depend
12353cd4eee737f5d9a37d71ef23b42f74c016fcd2eAaron Carrollendif
1247366ad05740d4cbbe5b43daa3b9b9efe74df34b3Jens Axboe