rm -rf $config_host_mak
rm -rf $config_host_h
+fatal() {
+ echo $@
+ echo "Configure failed, check config.log and/or the above output"
+ rm -rf $config_host_mak
+ rm -rf $config_host_h
+ exit 1
+}
+
# Default CFLAGS
CFLAGS="-D_GNU_SOURCE"
EXTFLAGS="-include config-host.h"
echo "ERROR: configure test passed without -Werror but failed with -Werror."
echo "This is probably a bug in the configure script. The failing command"
echo "will be at the bottom of config.log."
- echo "You can run configure with --disable-werror to bypass this check."
- exit 1
+ fatal "You can run configure with --disable-werror to bypass this check."
}
compile_object() {
echo "ERROR"
echo "ERROR: User requested feature $feature"
echo "ERROR: configure was not able to find it"
- echo "ERROR"
- exit 1;
+ fatal "ERROR"
}
has() {
cc="${CC-${cross_prefix}gcc}"
+# default options
show_help="no"
exit_val=0
+gfio="no"
# parse options
for opt do
optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
case "$opt" in
+ --cpu=*) cpu="$optarg"
+ ;;
--cc=*) CC="$optarg"
;;
--extra-cflags=*) CFLAGS="$CFLAGS $optarg"
;;
- --help)
- show_help="yes"
+ --build-32bit-win=*) build_32bit_win="$optarg"
+ ;;
+ --enable-gfio)
+ gfio="yes"
;;
+ --help)
+ show_help="yes"
+ ;;
*)
echo "Bad option $opt"
show_help="yes"
done
if test "$show_help" = "yes" ; then
+ 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= Specify yes for a 32-bit build on Windows"
+ echo "--enable-gfio Enable building of gtk gfio"
exit $exit_val
fi
-if check_define __linux__ ; then
+if check_define __ANDROID__ ; then
+ targetos="Android"
+elif check_define __linux__ ; then
targetos="Linux"
elif check_define __OpenBSD__ ; then
targetos='OpenBSD'
CYGWIN*)
echo "Forcing known good options on Windows"
if test -z "$CC" ; then
- CC="x86_64-w64-mingw32-gcc"
+ if test ! -z "$build_32bit_win" && test "$build_32bit_win" = "yes"; then
+ CC="i686-w64-mingw32-gcc"
+ else
+ CC="x86_64-w64-mingw32-gcc"
+ fi
fi
output_sym "CONFIG_LITTLE_ENDIAN"
- output_sym "CONFIG_64BIT_LLP64"
+ if test ! -z "$build_32bit_win" && test "$build_32bit_win" = "yes"; then
+ output_sym "CONFIG_32BIT"
+ else
+ output_sym "CONFIG_64BIT_LLP64"
+ fi
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"
echo "CC=$CC" >> $config_host_mak
echo "EXTFLAGS=$CFLAGS -include config-host.h -D_GNU_SOURCE" >> $config_host_mak
exit 0
+ ;;
+Android)
+ output_sym "CONFIG_32BIT"
+ output_sym "CONFIG_LITTLE_ENDIAN"
+ output_sym "CONFIG_SOCKLEN_T"
+ output_sym "CONFIG_GETTIMEOFDAY"
+ output_sym "CONFIG_CLOCK_GETTIME"
+ output_sym "CONFIG_CLOCK_MONOTONIC"
+ echo "CC=$cc" >> $config_host_mak
+ echo "EXTFLAGS=$CFLAGS -include config-host.h -DFIO_NO_HAVE_SHM_H -D_GNU_SOURCE" >> $config_host_mak
+ exit 0
esac
if test ! -z "$cpu" ; then
cpu="sparc"
;;
*)
- echo "Unknown CPU"
- exit 1;
+ echo "Unknown CPU"
;;
esac
echo "__thread $tls_thread"
##########################################
+# Whether or not __thread is supported for TLS
+if test "$gfio" = "yes" ; then
+ cat > $TMPC << EOF
+#include <glib.h>
+#include <cairo.h>
+#include <gtk/gtk.h>
+int main(void)
+{
+ gdk_threads_enter();
+ gdk_threads_leave();
+
+ printf("%d", GTK_CHECK_VERSION(2, 18, 0));
+}
+EOF
+GTK_CFLAGS=$(pkg-config --cflags gtk+-2.0 gthread-2.0)
+if test "$?" != "0" ; then
+ echo "configure: gtk and gthread not found"
+ exit 1
+fi
+GTK_LIBS=$(pkg-config --libs gtk+-2.0 gthread-2.0)
+if test "$?" != "0" ; then
+ echo "configure: gtk and gthread not found"
+ exit 1
+fi
+if compile_prog "$GTK_CFLAGS" "$GTK_LIBS" "gfio" ; then
+ r=$($TMPE)
+ if test "$r" != "0" ; then
+ gfio="yes"
+ LIBS="$LIBS $GTK_LIBS"
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ else
+ echo "GTK found, but need version 2.18 or higher"
+ gfio="no"
+ fi
+else
+ echo "Please install gtk and gdk libraries"
+ gfio="no"
+fi
+fi
+
+echo "gfio $gfio"
+
# Check whether we have getrusage(RUSAGE_THREAD)
rusage_thread="no"
cat > $TMPC << EOF
elif test "$wordsize" = "32" ; then
output_sym "CONFIG_32BIT"
else
- echo "Unknown wordsize!"
- exit 1
+ fatal "Unknown wordsize!"
fi
if test "$bigendian" = "yes" ; then
output_sym "CONFIG_BIG_ENDIAN"
if test "$rusage_thread" = "yes" ; then
output_sym "CONFIG_RUSAGE_THREAD"
fi
+if test "$gfio" = "yes" ; then
+ echo "CONFIG_GFIO=y" >> $config_host_mak
+fi
if test "$sched_idle" = "yes" ; then
output_sym "CONFIG_SCHED_IDLE"
fi
fi
echo "LIBS+=$LIBS" >> $config_host_mak
+echo "CFLAGS+=$CFLAGS" >> $config_host_mak
echo "CC=$cc" >> $config_host_mak
echo "EXTFLAGS=$EXTFLAGS $CFLAGS" >> $config_host_mak