-fio: fio.o ioengines.o init.o stat.o log.o time.o md5.o crc32.o
- $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) -lpthread -laio -lm -lrt
-
-clean:
- -rm -f *.o .depend cscope.out $(PROGS)
+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 profiles/tiobench.c
+ LIBS += -lpthread -ldl -lrt -laio
+ CFLAGS += -rdynamic
+endif
+ifeq ($(UNAME), SunOS)
+ 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
+ CFLAGS += -rdynamic
+endif
+ifeq ($(UNAME), NetBSD)
+ SOURCE += helpers.c engines/posixaio.c
+ LIBS += -lpthread -lrt
+ CFLAGS += -rdynamic
+endif
+ifeq ($(UNAME), AIX)
+ SOURCE += fifo.c helpers.c lib/getopt_long.c engines/posixaio.c
+ LIBS += -lpthread -ldl -lrt
+ CFLAGS += -rdynamic
+ CPPFLAGS += -D_LARGE_FILES -D__ppc__
+endif
+ifeq ($(UNAME), HP-UX)
+ 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 += engines/windowsaio.c
+ LIBS += -lpthread -lrt
+endif