From 4feafb1e7864b736e1bfe83fe185fbba933b1c60 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Thu, 24 Jan 2013 23:07:55 -0700 Subject: [PATCH] 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 --- Makefile | 75 ++------------------------------------ configure | 106 +++++++++++++++++++++++++++++------------------------- os/os.h | 2 +- 3 files changed, 60 insertions(+), 123 deletions(-) diff --git a/Makefile b/Makefile index dab6e888..30a7f2e8 100644 --- a/Makefile +++ b/Makefile @@ -39,116 +39,45 @@ endif 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 @@ FIO-VERSION-FILE: FORCE 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 b49497b7..0a404d00 100755 --- a/configure +++ b/configure @@ -24,10 +24,13 @@ trap "rm -f $TMPC $TMPO $TMPE" EXIT INT QUIT TERM 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 @@ EOF compile_object } +output_sym() { + echo "$1=y" >> $config_host_mak + echo "#define $1" >> $config_host_h +} + targetos="" cpu="" @@ -153,20 +161,20 @@ CYGWIN*) 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 @@ printf " '%s'" "$0" "$@" >> $config_host_mak 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 f33a7cdf..ef9f91f5 100644 --- a/os/os.h +++ b/os/os.h @@ -56,7 +56,7 @@ typedef struct aiocb os_aiocb_t; #include #endif -#ifdef CONFIG_STRSEP +#ifndef CONFIG_STRSEP #include "../lib/strsep.h" #endif -- 2.25.1