exit_val=0
gfio_check="no"
libhdfs="no"
+prefix=/usr/local
# parse options
for opt do
optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
case "$opt" in
+ --prefix=*) prefix="$optarg"
+ ;;
--cpu=*) cpu="$optarg"
;;
# esx is cross compiled and cannot be detect through simple uname calls
;;
--build-32bit-win) build_32bit_win="yes"
;;
+ --build-static) build_static="yes"
+ ;;
--enable-gfio)
gfio_check="yes"
;;
;;
--enable-libhdfs) libhdfs="yes"
;;
+ --disable-shm) output_sym "CONFIG_NO_SHM"
+ ;;
--help)
show_help="yes"
;;
done
if test "$show_help" = "yes" ; then
+ echo "--prefix= Use this directory as installation prefix"
echo "--cpu= Specify target CPU if auto-detect fails"
echo "--cc= Specify compiler to use"
echo "--extra-cflags= Specify extra CFLAGS to pass to compiler"
echo "--build-32bit-win Enable 32-bit build on Windows"
+ echo "--build-static Build a static fio"
echo "--esx Configure build options for esx"
echo "--enable-gfio Enable building of gtk gfio"
echo "--disable-numa Disable libnuma even if found"
+ echo "--disable-gfapi Disable gfapi"
echo "--enable-libhdfs Enable hdfs support"
+ echo "--disable-shm Disable SHM support"
exit $exit_val
fi
echo "Cross compile $cross_compile"
echo
+##########################################
+# See if we need to build a static build
+if test "$build_static" = "yes" ; then
+ CFLAGS="$CFLAGS -ffunction-sections -fdata-sections"
+ LDFLAGS="$LDFLAGS -static -Wl,--gc-sections"
+else
+ build_static="no"
+fi
+echo "Static build $build_static"
+
##########################################
# check for wordsize
wordsize="0"
fi
echo "CLOCK_MONOTONIC $clock_monotonic"
+##########################################
+# CLOCK_MONOTONIC_RAW probe
+clock_monotonic_raw="no"
+if test "$clock_gettime" = "yes" ; then
+ cat > $TMPC << EOF
+#include <stdio.h>
+#include <time.h>
+int main(int argc, char **argv)
+{
+ return clock_gettime(CLOCK_MONOTONIC_RAW, NULL);
+}
+EOF
+ if compile_prog "" "$LIBS" "clock monotonic"; then
+ clock_monotonic_raw="yes"
+ fi
+fi
+echo "CLOCK_MONOTONIC_RAW $clock_monotonic_raw"
+
##########################################
# CLOCK_MONOTONIC_PRECISE probe
clock_monotonic_precise="no"
return nvm_atomic_write(handle, 0, 0, 0);
}
EOF
-if compile_prog "" "-L/usr/lib/fio -L/usr/lib/nvm -lnvm-primitives -lvsl -ldl" "fusion-aw"; then
- LIBS="-L/usr/lib/fio -L/usr/lib/nvm -lnvm-primitives -lvsl -ldl $LIBS"
+if compile_prog "" "-L/usr/lib/fio -L/usr/lib/nvm -lnvm-primitives -ldl -lpthread" "fusion-aw"; then
+ LIBS="-L/usr/lib/fio -L/usr/lib/nvm -lnvm-primitives -ldl -lpthread $LIBS"
fusion_aw="yes"
fi
echo "Fusion-io atomic engine $fusion_aw"
int main(int argc, char **argv)
{
struct bitmask *mask = numa_parse_nodestring(NULL);
- return 0;
+ return mask->size == 0;
}
EOF
if compile_prog "" "" "libnuma api"; then
}
EOF
GTK_CFLAGS=$(pkg-config --cflags gtk+-2.0 gthread-2.0)
+ORG_LDFLAGS=$LDFLAGS
+LDFLAGS=$(echo $LDFLAGS | sed s/"-static"//g)
if test "$?" != "0" ; then
echo "configure: gtk and gthread not found"
exit 1
r=$($TMPE)
if test "$r" != "0" ; then
gfio="yes"
- LIBS="$LIBS $GTK_LIBS"
+ GFIO_LIBS="$LIBS $GTK_LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
else
echo "GTK found, but need version 2.18 or higher"
echo "Please install gtk and gdk libraries"
gfio="no"
fi
+LDFLAGS=$ORG_LDFLAGS
fi
if test "$gfio_check" = "yes" ; then
fi
echo "HDFS engine $libhdfs"
+##########################################
+# Check whether we have MTD
+mtd="no"
+cat > $TMPC << EOF
+#include <mtd/mtd-user.h>
+#include <sys/ioctl.h>
+int main(int argc, char **argv)
+{
+ struct mtd_info_user info;
+ info.type = MTD_MLCNANDFLASH;
+ return ioctl(0, MEMGETINFO, &info);
+}
+EOF
+if compile_prog "" "" "mtd"; then
+ mtd="yes"
+fi
+echo "MTD $mtd"
+
# Check if we have lex/yacc available
yacc="no"
yacc_is_bison="no"
lex="no"
arith="no"
+if test "$targetos" != "SunOS" ; then
LEX=$(which lex 2> /dev/null)
if test -x "$LEX" ; then
lex="yes"
return 0;
}
EOF
-
if compile_prog "" "-ll" "lex"; then
LIBS="-ll $LIBS"
else
arith="no"
fi
fi
+fi
echo "lex/yacc for arithmetic $arith"
+##########################################
+# Check whether we have setmntent/getmntent
+getmntent="no"
+cat > $TMPC << EOF
+#include <stdio.h>
+#include <mntent.h>
+int main(int argc, char **argv)
+{
+ FILE *mtab = setmntent(NULL, "r");
+ struct mntent *mnt = getmntent(mtab);
+ endmntent(mnt);
+ return 0;
+}
+EOF
+if compile_prog "" "" "getmntent"; then
+ getmntent="yes"
+fi
+echo "getmntent $getmntent"
+
+##########################################
+# Check whether we have getmntinfo
+getmntinfo="no"
+cat > $TMPC << EOF
+#include <stdio.h>
+#include <sys/param.h>
+#include <sys/mount.h>
+int main(int argc, char **argv)
+{
+ struct statfs st;
+ return getmntinfo(&st, MNT_NOWAIT);
+}
+EOF
+if compile_prog "" "" "getmntinfo"; then
+ getmntinfo="yes"
+fi
+echo "getmntinfo $getmntinfo"
+
#############################################################################
if test "$wordsize" = "64" ; then
if test "$clock_monotonic" = "yes" ; then
output_sym "CONFIG_CLOCK_MONOTONIC"
fi
+if test "$clock_monotonic_raw" = "yes" ; then
+ output_sym "CONFIG_CLOCK_MONOTONIC_RAW"
+fi
if test "$clock_monotonic_precise" = "yes" ; then
output_sym "CONFIG_CLOCK_MONOTONIC_PRECISE"
fi
fi
if test "$libhdfs" = "yes" ; then
output_sym "CONFIG_LIBHDFS"
+ echo "JAVA_HOME=$JAVA_HOME" >> $config_host_mak
+ echo "FIO_LIBHDFS_INCLUDE=$FIO_LIBHDFS_INCLUDE" >> $config_host_mak
+ echo "FIO_LIBHDFS_LIB=$FIO_LIBHDFS_LIB" >> $config_host_mak
+ fi
+if test "$mtd" = "yes" ; then
+ output_sym "CONFIG_MTD"
fi
if test "$arith" = "yes" ; then
output_sym "CONFIG_ARITHMETIC"
echo "YACC=$YACC" >> $config_host_mak
fi
fi
+if test "$getmntent" = "yes" ; then
+ output_sym "CONFIG_GETMNTENT"
+fi
+if test "$getmntinfo" = "yes" ; then
+ output_sym "CONFIG_GETMNTINFO"
+fi
if test "$zlib" = "no" ; then
echo "Consider installing zlib-dev (zlib-devel), some fio features depend on it."
fi
echo "LIBS+=$LIBS" >> $config_host_mak
+echo "GFIO_LIBS+=$GFIO_LIBS" >> $config_host_mak
echo "CFLAGS+=$CFLAGS" >> $config_host_mak
+echo "LDFLAGS+=$LDFLAGS" >> $config_host_mak
echo "CC=$cc" >> $config_host_mak
echo "BUILD_CFLAGS=$BUILD_CFLAGS $CFLAGS" >> $config_host_mak
+echo "INSTALL_PREFIX=$prefix" >> $config_host_mak