+ifeq ($(UNAME), Linux)
+ SOURCE += diskutil.c fifo.c blktrace.c helpers.c cgroup.c trim.c \
+ engines/libaio.c engines/posixaio.c engines/sg.c \
+ engines/splice.c engines/syslet-rw.c engines/guasi.c \
+ engines/binject.c engines/rdma.c profiles/tiobench.c \
+ engines/fusion-aw.c engines/falloc.c engines/e4defrag.c
+ LIBS += -lpthread -ldl -lrt -laio
+ LDFLAGS += -rdynamic
+endif
+ifeq ($(UNAME), Android)
+ SOURCE += diskutil.c fifo.c blktrace.c helpers.c trim.c \
+ engines/splice.c profiles/tiobench.c engines/falloc.c \
+ engines/e4defrag.c
+ LIBS += -ldl
+ LDFLAGS += -rdynamic
+ CPPFLAGS += -DFIO_NO_HAVE_SHM_H
+endif
+ifeq ($(UNAME), SunOS)
+ CC = gcc
+ SOURCE += fifo.c lib/strsep.c helpers.c engines/posixaio.c \
+ engines/solarisaio.c
+ LIBS += -lpthread -ldl -laio -lrt -lnsl -lsocket
+ CPPFLAGS += -D__EXTENSIONS__
+endif
+ifeq ($(UNAME), FreeBSD)
+ SOURCE += helpers.c engines/posixaio.c
+ LIBS += -lpthread -lrt
+ LDFLAGS += -rdynamic
+endif
+ifeq ($(UNAME), NetBSD)
+ SOURCE += helpers.c engines/posixaio.c
+ LIBS += -lpthread -lrt
+ LDFLAGS += -rdynamic
+endif
+ifeq ($(UNAME), AIX)
+ SOURCE += fifo.c helpers.c lib/getopt_long.c engines/posixaio.c
+ LIBS += -lpthread -ldl -lrt
+ CPPFLAGS += -D_LARGE_FILES -D__ppc__
+ LDFLAGS += -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000
+endif
+ifeq ($(UNAME), HP-UX)
+ CC = gcc
+ SOURCE += fifo.c helpers.c lib/getopt_long.c lib/strsep.c engines/posixaio.c
+ LIBS += -lpthread -ldl -lrt
+ CFLAGS += -D_LARGEFILE64_SOURCE
+endif
+ifeq ($(UNAME), Darwin)
+ SOURCE += helpers.c engines/posixaio.c
+ LIBS += -lpthread -ldl
+endif
+ifneq (,$(findstring CYGWIN,$(UNAME)))
+ SOURCE := $(filter-out engines/mmap.c,$(SOURCE))
+ SOURCE += engines/windowsaio.c os/windows/posix.c
+ LIBS += -lpthread -lpsapi -lws2_32
+ CFLAGS += -DPSAPI_VERSION=1 -Ios/windows/posix/include -Wno-format
+ CC = x86_64-w64-mingw32-gcc
+ #CC = i686-w64-mingw32-gcc
+endif