configure: auto-generate a config-host.h
Don't have all these special cases to convert a .mak to a .h define,
just generate it from the configure script instead.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/Makefile b/Makefile
index dab6e88..30a7f2e 100644
--- a/Makefile
+++ b/Makefile
@@ -39,116 +39,45 @@
ifdef CONFIG_32BIT
CFLAGS += -DBITS_PER_LONG=32
endif
-ifdef CONFIG_BIG_ENDIAN
- CFLAGS += -DCONFIG_BIG_ENDIAN
-endif
-ifdef CONFIG_LITTLE_ENDIAN
- CFLAGS += -DCONFIG_LITTLE_ENDIAN
-endif
ifdef CONFIG_LIBAIO
- CFLAGS += -DCONFIG_LIBAIO
SOURCE += engines/libaio.c
endif
ifdef CONFIG_RDMA
- CFLAGS += -DCONFIG_RDMA
SOURCE += engines/rdma.c
endif
ifdef CONFIG_POSIXAIO
- CFLAGS += -DCONFIG_POSIXAIO
SOURCE += engines/posixaio.c
endif
ifdef CONFIG_LINUX_FALLOCATE
SOURCE += engines/falloc.c
endif
ifdef CONFIG_LINUX_EXT4_MOVE_EXTENT
- CFLAGS += -DCONFIG_LINUX_EXT4_MOVE_EXTENT
SOURCE += engines/e4defrag.c
endif
ifdef CONFIG_LINUX_SPLICE
- CFLAGS += -DCONFIG_LINUX_SPLICE
SOURCE += engines/splice.c
endif
ifdef CONFIG_GUASI
- CFLAGS += -DCONFIG_GUASI
SOURCE += engines/guasi.c
endif
ifdef CONFIG_FUSION_AW
- CFLAGS += -DCONFIG_FUSION_AW
SOURCE += engines/fusion-aw.c
endif
ifdef CONFIG_SOLARISAIO
- CFLAGS += -DCONFIG_SOLARISAIO
SOURCE += engines/solarisaio.c
endif
ifdef CONFIG_WINDOWSAIO
- CFLAGS += -DCONFIG_WINDOWSAIO
SOURCE += engines/windowsaio.c
endif
-
ifndef CONFIG_STRSEP
- CFLAGS += -DCONFIG_STRSEP
SOURCE += lib/strsep.c
endif
ifndef CONFIG_GETOPT_LONG_ONLY
- CFLAGS += -DCONFIG_GETOPT_LONG_ONLY
SOURCE += lib/getopt_long.c
endif
-
ifndef CONFIG_INET_ATON
- CFLAGS += -DCONFIG_INET_ATON
SOURCE += lib/inet_aton.c
endif
-ifdef CONFIG_CLOCK_GETTIME
- CFLAGS += -DCONFIG_CLOCK_GETTIME
-endif
-ifdef CONFIG_POSIXAIO_FSYNC
- CFLAGS += -DCONFIG_POSIXAIO_FSYNC
-endif
-ifdef CONFIG_FADVISE
- CFLAGS += -DCONFIG_FADVISE
-endif
-ifdef CONFIG_CLOCK_MONOTONIC
- CFLAGS += -DCONFIG_CLOCK_MONOTONIC
-endif
-ifdef CONFIG_CLOCK_MONOTONIC_PRECISE
- CFLAGS += -DCONFIG_CLOCK_MONOTONIC_PRECISE
-endif
-ifdef CONFIG_GETTIMEOFDAY
- CFLAGS += -DCONFIG_GETTIMEOFDAY
-endif
-ifdef CONFIG_SOCKLEN_T
- CFLAGS += -DCONFIG_SOCKLEN_T
-endif
-ifdef CONFIG_SFAA
- CFLAGS += -DCONFIG_SFAA
-endif
-ifdef CONFIG_FDATASYNC
- CFLAGS += -DCONFIG_FDATASYNC
-endif
-ifdef CONFIG_3ARG_AFFINITY
- CFLAGS += -DCONFIG_3ARG_AFFINITY
-endif
-ifdef CONFIG_2ARG_AFFINITY
- CFLAGS += -DCONFIG_2ARG_AFFINITY
-endif
-ifdef CONFIG_SYNC_FILE_RANGE
- CFLAGS += -DCONFIG_SYNC_FILE_RANGE
-endif
-ifdef CONFIG_LIBNUMA
- CFLAGS += -DCONFIG_LIBNUMA
-endif
-ifdef CONFIG_TLS_THREAD
- CFLAGS += -DCONFIG_TLS_THREAD
-endif
-ifdef CONFIG_POSIX_FALLOCATE
- CFLAGS += -DCONFIG_POSIX_FALLOCATE
-endif
-ifdef CONFIG_LINUX_FALLOCATE
- CFLAGS += -DCONFIG_LINUX_FALLOCATE
-endif
-ifdef CONFIG_RUSAGE_THREAD
- CFLAGS += -DCONFIG_RUSAGE_THREAD
-endif
ifeq ($(UNAME), Linux)
SOURCE += diskutil.c fifo.c blktrace.c cgroup.c trim.c engines/sg.c \
@@ -250,10 +179,10 @@
CFLAGS += -DFIO_VERSION='"$(FIO_VERSION)"'
.c.o: .depend FORCE
- $(QUIET_CC)$(CC) -o $@ -c $(CFLAGS) $(CPPFLAGS) $<
+ $(QUIET_CC)$(CC) -o $@ $(CFLAGS) $(CPPFLAGS) -c $<
init.o: FIO-VERSION-FILE
- $(QUIET_CC)$(CC) -o init.o -c $(CFLAGS) $(CPPFLAGS) -c init.c
+ $(QUIET_CC)$(CC) -o init.o $(CFLAGS) $(CPPFLAGS) -c init.c
t/stest: $(T_SMALLOC_OBJS)
$(QUIET_CC)$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(T_SMALLOC_OBJS) $(LIBS) $(LDFLAGS)
diff --git a/configure b/configure
index b49497b..0a404d0 100755
--- a/configure
+++ b/configure
@@ -24,10 +24,13 @@
rm -rf config.log
config_host_mak="config-host.mak"
-config_host_ld="config-host.ld"
+config_host_h="config-host.h"
+
+rm -rf $config_host_mak
+rm -rf $config_host_h
# Default CFLAGS
-CFLAGS="-D_GNU_SOURCE"
+EXTFLAGS="-include config-host.h -D_GNU_SOURCE"
# Print a helpful header at the top of config.log
echo "# FIO configure log $(date)" >> config.log
@@ -100,6 +103,11 @@
compile_object
}
+output_sym() {
+ echo "$1=y" >> $config_host_mak
+ echo "#define $1" >> $config_host_h
+}
+
targetos=""
cpu=""
@@ -153,20 +161,20 @@
if test -z "$CC" ; then
CC="x86_64-w64-mingw32-gcc"
fi
- echo "CC=$CC" > $config_host_mak
- echo "CONFIG_LITTLE_ENDIAN=y" >> $config_host_mak
- echo "CONFIG_64BIT_LLP64=y" >> $config_host_mak
- echo "CONFIG_CLOCK_GETTIME=y" >> $config_host_mak
- echo "CONFIG_CLOCK_MONOTONIC=y" >> $config_host_mak
- echo "CONFIG_GETTIMEOFDAY=y" >> $config_host_mak
- echo "CONFIG_FADVISE=y" >> $config_host_mak
- echo "CONFIG_SOCKLEN_T=y" >> $config_host_mak
- echo "CONFIG_POSIX_FALLOCATE=y" >> $config_host_mak
- echo "CONFIG_FADVISE=y" >> $config_host_mak
- echo "CONFIG_SFAA=y" >> $config_host_mak
- echo "CONFIG_RUSAGE_THREAD=y" >> $config_host_mak
- echo "CONFIG_WINDOWSAIO=y" >> $config_host_mak
- echo "CONFIG_FDATASYNC=y" >> $config_host_mak
+ output_sym "CONFIG_LITTLE_ENDIAN"
+ output_sym "CONFIG_64BIT_LLP64"
+ output_sym "CONFIG_CLOCK_GETTIME"
+ output_sym "CONFIG_CLOCK_MONOTONIC"
+ output_sym "CONFIG_GETTIMEOFDAY"
+ output_sym "CONFIG_FADVISE"
+ output_sym "CONFIG_SOCKLEN_T"
+ output_sym "CONFIG_POSIX_FALLOCATE"
+ output_sym "CONFIG_FADVISE"
+ output_sym "CONFIG_SFAA"
+ output_sym "CONFIG_RUSAGE_THREAD"
+ output_sym "CONFIG_WINDOWSAIO"
+ output_sym "CONFIG_FDATASYNC"
+ echo "CC=$CC" >> $config_host_mak
exit 0
esac
@@ -817,102 +825,102 @@
echo >> $config_host_mak
if test "$wordsize" = "64" ; then
- echo "CONFIG_64BIT=y" >> $config_host_mak
+ output_sym "CONFIG_64BIT"
elif test "$wordsize" = "32" ; then
- echo "CONFIG_32BIT=y" >> $config_host_mak
+ output_sym "CONFIG_32BIT"
else
echo "Unknown wordsize!"
exit 1
fi
if test "$bigendian" = "yes" ; then
- echo "CONFIG_BIG_ENDIAN=y" >> $config_host_mak
+ output_sym "CONFIG_BIG_ENDIAN"
else
- echo "CONFIG_LITTLE_ENDIAN=y" >> $config_host_mak
+ output_sym "CONFIG_LITTLE_ENDIAN"
fi
if test "$libaio" = "yes" ; then
- echo "CONFIG_LIBAIO=y" >> $config_host_mak
+ output_sym "CONFIG_LIBAIO"
fi
if test "$posix_aio" = "yes" ; then
- echo "CONFIG_POSIXAIO=y" >> $config_host_mak
+ output_sym "CONFIG_POSIXAIO"
fi
if test "$posix_aio_fsync" = "yes" ; then
- echo "CONFIG_POSIXAIO_FSYNC=y" >> $config_host_mak
+ output_sym "CONFIG_POSIXAIO_FSYNC"
fi
if test "$linux_fallocate" = "yes" ; then
- echo "CONFIG_LINUX_FALLOCATE=y" >> $config_host_mak
+ output_sym "CONFIG_LINUX_FALLOCATE"
fi
if test "$posix_fallocate" = "yes" ; then
- echo "CONFIG_POSIX_FALLOCATE=y" >> $config_host_mak
+ output_sym "CONFIG_POSIX_FALLOCATE"
fi
if test "$fdatasync" = "yes" ; then
- echo "CONFIG_FDATASYNC=y" >> $config_host_mak
+ output_sym "CONFIG_FDATASYNC"
fi
if test "$sync_file_range" = "yes" ; then
- echo "CONFIG_SYNC_FILE_RANGE=y" >> $config_host_mak
+ output_sym "CONFIG_SYNC_FILE_RANGE"
fi
if test "$sfaa" = "yes" ; then
- echo "CONFIG_SFAA=y" >> $config_host_mak
+ output_sym "CONFIG_SFAA"
fi
if test "$libverbs" = "yes" -o "rdmacm" = "yes" ; then
- echo "CONFIG_RDMA=y" >> $config_host_mak
+ output_sym "CONFIG_RDMA"
fi
if test "$clock_gettime" = "yes" ; then
- echo "CONFIG_CLOCK_GETTIME=y" >> $config_host_mak
+ output_sym "CONFIG_CLOCK_GETTIME"
fi
if test "$clock_monotonic" = "yes" ; then
- echo "CONFIG_CLOCK_MONOTONIC=y" >> $config_host_mak
+ output_sym "CONFIG_CLOCK_MONOTONIC"
fi
if test "$clock_monotonic_precise" = "yes" ; then
- echo "CONFIG_CLOCK_MONOTONIC_PRECISE=y" >> $config_host_mak
+ output_sym "CONFIG_CLOCK_MONOTONIC_PRECISE"
fi
if test "$gettimeofday" = "yes" ; then
- echo "CONFIG_GETTIMEOFDAY=y" >> $config_host_mak
+ output_sym "CONFIG_GETTIMEOFDAY"
fi
if test "$posix_fadvise" = "yes" ; then
- echo "CONFIG_POSIX_FADVISE=y" >> $config_host_mak
+ output_sym "CONFIG_POSIX_FADVISE"
fi
if test "$linux_3arg_affinity" = "yes" ; then
- echo "CONFIG_3ARG_AFFINITY=y" >> $config_host_mak
+ output_sym "CONFIG_3ARG_AFFINITY"
elif test "$linux_2arg_affinity" = "yes" ; then
- echo "CONFIG_2ARG_AFFINITY=y" >> $config_host_mak
+ output_sym "CONFIG_2ARG_AFFINITY"
fi
if test "$strsep" = "yes" ; then
- echo "CONFIG_STRSEP=y" >> $config_host_mak
+ output_sym "CONFIG_STRSEP"
fi
if test "$getopt_long_only" = "yes" ; then
- echo "CONFIG_GETOPT_LONG_ONLY=y" >> $config_host_mak
+ output_sym "CONFIG_GETOPT_LONG_ONLY"
fi
if test "$inet_aton" = "yes" ; then
- echo "CONFIG_INET_ATON=y" >> $config_host_mak
+ output_sym "CONFIG_INET_ATON"
fi
if test "$socklen_t" = "yes" ; then
- echo "CONFIG_SOCKLEN_T=y" >> $config_host_mak
+ output_sym "CONFIG_SOCKLEN_T"
fi
if test "$ext4_me" = "yes" ; then
- echo "CONFIG_LINUX_EXT4_MOVE_EXTENT=y" >> $config_host_mak
+ output_sym "CONFIG_LINUX_EXT4_MOVE_EXTENT"
fi
if test "$linux_splice" = "yes" ; then
- echo "CONFIG_LINUX_SPLICE=y" >> $config_host_mak
+ output_sym "CONFIG_LINUX_SPLICE"
fi
if test "$guasi" = "yes" ; then
- echo "CONFIG_GUASI=y" >> $config_host_mak
+ output_sym "CONFIG_GUASI"
fi
if test "$fusion_aw" = "yes" ; then
- echo "CONFIG_FUSION_AW=y" >> $config_host_mak
+ output_sym "CONFIG_FUSION_AW"
fi
if test "$libnuma" = "yes" ; then
- echo "CONFIG_LIBNUMA=y" >> $config_host_mak
+ output_sym "CONFIG_LIBNUMA"
fi
if test "$solaris_aio" = "yes" ; then
- echo "CONFIG_SOLARISAIO=y" >> $config_host_mak
+ output_sym "CONFIG_SOLARISAIO"
fi
if test "$tls_thread" = "yes" ; then
- echo "CONFIG_TLS_THREAD=y" >> $config_host_mak
+ output_sym "CONFIG_TLS_THREAD"
fi
if test "$rusage_thread" = "yes" ; then
- echo "CONFIG_RUSAGE_THREAD=y" >> $config_host_mak
+ output_sym "CONFIG_RUSAGE_THREAD"
fi
echo "LIBS+=$LIBS" >> $config_host_mak
echo "CC=$cc" >> $config_host_mak
-echo "CFLAGS=$CFLAGS" >> $config_host_mak
+echo "EXTFLAGS=$EXTFLAGS" >> $config_host_mak
diff --git a/os/os.h b/os/os.h
index f33a7cd..ef9f91f 100644
--- a/os/os.h
+++ b/os/os.h
@@ -56,7 +56,7 @@
#include <scsi/sg.h>
#endif
-#ifdef CONFIG_STRSEP
+#ifndef CONFIG_STRSEP
#include "../lib/strsep.h"
#endif