evil-qemacs/configure

508 lines
11 KiB
Text
Raw Normal View History

2004-05-29 10:17:37 +00:00
#!/bin/sh
#
# qemacs configure script (c) 2002 Fabrice Bellard
#
2006-04-24 11:58:17 +00:00
2004-05-29 10:17:37 +00:00
# set temporary file name
if test ! -z "$TMPDIR" ; then
TMPDIR1="${TMPDIR}"
elif test ! -z "$TEMPDIR" ; then
TMPDIR1="${TEMPDIR}"
else
TMPDIR1="/tmp"
fi
TMPC="${TMPDIR1}/qemacs-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/qemacs-conf-${RANDOM}-$$-${RANDOM}.o"
TMPS="${TMPDIR1}/qemacs-conf-${RANDOM}-$$-${RANDOM}.S"
TMPH="${TMPDIR1}/qemacs-conf-${RANDOM}-$$-${RANDOM}.h"
# default parameters
prefix="/usr/local"
cross_prefix=""
cc="gcc"
host_cc="gcc"
ar="ar"
make="make"
strip="strip"
cpu=`uname -m`
case "$cpu" in
i386|i486|i586|i686|i86pc|BePC)
cpu="x86"
2006-04-24 11:58:17 +00:00
;;
2004-05-29 10:17:37 +00:00
armv4l)
cpu="armv4l"
2006-04-24 11:58:17 +00:00
;;
2004-05-29 10:17:37 +00:00
alpha)
cpu="alpha"
2006-04-24 11:58:17 +00:00
;;
2004-05-29 10:17:37 +00:00
*)
cpu="unknown"
2006-04-24 11:58:17 +00:00
;;
2004-05-29 10:17:37 +00:00
esac
gprof="no"
network="yes"
win32="no"
2005-05-04 19:40:26 +00:00
cygwin="no"
2004-05-29 10:17:37 +00:00
lshared="no"
extralibs="-lm"
simpleidct="yes"
bigendian="no"
mpegaudio_hp="yes"
tiny="no"
x11="no"
xv="no"
2004-05-29 10:17:37 +00:00
xrender="no"
png="no"
2004-05-29 10:17:37 +00:00
ffmpeg="no"
html="no"
2004-05-29 10:17:37 +00:00
plugins="yes"
2005-05-04 19:40:26 +00:00
initcalls="yes"
kmaps="yes"
modes="yes"
bidir="yes"
2005-05-04 19:40:26 +00:00
exe=""
2004-05-29 10:17:37 +00:00
# OS specific
targetos=`uname -s`
case $targetos in
2005-05-04 19:40:26 +00:00
BeOS)
prefix="/boot/home/config"
# helps building libavcodec
CFLAGS="-O2 -DPIC"
# no need for libm, but the inet stuff
# Check for BONE
if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
extralibs="-lbind -lsocket"
else
echo "Not sure building for net_server will succeed... good luck."
2006-04-24 11:58:17 +00:00
extralibs="-lsocket"
fi
;;
2005-05-04 19:40:26 +00:00
BSD/OS)
extralibs="-lpoll -lgnugetopt -lm"
make="gmake"
;;
CYGWIN*)
cygwin="yes"
;;
2006-04-24 11:58:17 +00:00
*)
;;
2004-05-29 10:17:37 +00:00
esac
# find source path
# XXX: we assume an absolute path is given when launching configure,
# except in './configure' case.
source_path=${0%configure}
source_path=${source_path%/}
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
source_path=`pwd`
source_path_used="no"
fi
if test -d "./ffmpeg" ; then
2005-05-04 19:40:26 +00:00
ffmpeg="yes"
ffmpeg_srcdir="./ffmpeg"
2004-05-29 10:17:37 +00:00
fi
if test -f "/usr/include/png.h" ; then
png="yes"
fi
if test -f "/usr/include/X11/Xlib.h" ; then
x11="yes"
html="yes"
if test -f "/usr/include/X11/extensions/Xv.h" ; then
xv="yes"
fi
fi
2004-05-29 10:17:37 +00:00
for opt do
2006-04-24 11:58:17 +00:00
case "$opt" in
--prefix=*)
prefix=`echo $opt | cut -d '=' -f 2`
;;
--source-path=*)
source_path=`echo $opt | cut -d '=' -f 2`
;;
--cross-prefix=*)
cross_prefix=`echo $opt | cut -d '=' -f 2`
;;
--cc=*)
cc=`echo $opt | cut -d '=' -f 2`
;;
--make=*)
make=`echo $opt | cut -d '=' -f 2`
;;
--extra-cflags=*)
CFLAGS="${opt#--extra-cflags=}"
;;
--extra-ldflags=*)
LDFLAGS="${opt#--extra-ldflags=}"
;;
--extra-libs=*)
extralibs=${opt#--extra-libs=}
;;
--cpu=*)
cpu=`echo $opt | cut -d '=' -f 2`
;;
--enable-gprof)
gprof="yes"
;;
--disable-network)
network="no"
;;
--enable-win32)
win32="yes"
;;
--enable-cygwin)
cygwin="yes" ;
;;
--enable-shared)
lshared="yes"
;;
--disable-mpegaudio-hp)
mpegaudio_hp="no"
;;
--enable-tiny)
tiny="yes"
;;
--disable-x11)
x11="no"
;;
--disable-xv)
xv="no"
;;
--disable-xrender)
xrender="no"
;;
--disable-png)
png="no"
;;
--disable-html)
html="no"
;;
--disable-plugins)
plugins="no"
;;
--disable-ffmpeg)
ffmpeg="no"
;;
--with-ffmpegdir=*)
ffmpeg_srcdir=${opt#--with-ffmpegdir=} ; ffmpeg="yes"
;;
--with-ffmpeglibdir=*)
ffmpeg_libdir=${opt#--with-ffmpeglibdir=}
;;
esac
2004-05-29 10:17:37 +00:00
done
# Checking for CFLAGS
if test -z "$CFLAGS"; then
CFLAGS="-O2"
fi
if test "$win32" = "yes" ; then
cross_prefix="i386-mingw32msvc-"
network="no"
2005-05-04 19:40:26 +00:00
exe=".exe"
x11="no"
plugins="no"
kmaps="no"
2005-05-04 19:40:26 +00:00
fi
if test "$cygwin" = "yes" ; then
plugins="no"
x11="no"
xv="no"
xrender="no"
png="no"
ffmpeg="no"
html="no"
plugins="no"
initcalls="no"
exe=".exe"
2004-05-29 10:17:37 +00:00
fi
if test "$x11" = "no" ; then
xv="no"
xrender="no"
png="no"
ffmpeg="no"
html="no"
fi
2004-05-29 10:17:37 +00:00
# endianness : guess with cpu type. Should also use prefix
if test "$cpu" = "powerpc"; then
bigendian="yes"
fi
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"
# ---
# check availability of some header files
cat > $TMPC << EOF
#include <malloc.h>
int main( void ) { return 0; }
EOF
_memalign=no
_malloc_h=no
if $cc -o $TMPO $TMPC 2> /dev/null ; then
2005-05-04 19:40:26 +00:00
_malloc_h=yes
_memalign=yes
# check for memalign - atmos
cat > $TMPC << EOF
2004-05-29 10:17:37 +00:00
#include <malloc.h>
2005-05-11 09:04:12 +00:00
int main (void) {
char *string = NULL;
string = memalign(64, sizeof(char));
return 0;
2004-05-29 10:17:37 +00:00
}
EOF
2005-05-04 19:40:26 +00:00
$cc -o $TMPO $TMPC 2> /dev/null || _memalign=no
2004-05-29 10:17:37 +00:00
fi
if test "$ffmpeg" = "yes" ; then
if test -z "$ffmpeg_libdir" ; then
ffmpeg_libdir="$ffmpeg_srcdir"
fi
fi
if test "$tiny" = "yes" ; then
ffmpeg="no"
x11="no"
xv="no"
xrender="no"
png="no"
html="no"
plugins="no"
kmaps="no"
modes="no"
bidir="no"
2004-05-29 10:17:37 +00:00
fi
if test -z "$CFLAGS"; then
CFLAGS="-O2"
fi
# check gcc version
cat > $TMPC <<EOF
int main(void) {
#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
return 0;
#else
#error gcc < 3.2
#endif
}
EOF
gcc_major="2"
if $cc -o $TMPO $TMPC 2> /dev/null ; then
2006-04-24 11:58:17 +00:00
gcc_major="3"
2004-05-29 10:17:37 +00:00
fi
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
2006-04-24 11:58:17 +00:00
cat << EOF
2004-05-29 10:17:37 +00:00
Usage: configure [options]
Options: [defaults in brackets after descriptions]
EOF
2006-04-24 11:58:17 +00:00
2004-05-29 10:17:37 +00:00
echo "Standard options:"
echo " --help print this message"
echo " --prefix=PREFIX install in PREFIX [$prefix]"
echo " --enable-win32 enable win32 cross compile"
2005-05-04 19:40:26 +00:00
echo " --enable-cygwin compile for cygwin systems"
2004-05-29 10:17:37 +00:00
echo " --disable-x11 disable Xwindow support"
echo " --disable-xv disable Xvideo extension support"
echo " --disable-xrender disable Xrender extension support"
echo " --enable-tiny build a very small version"
echo " --disable-html disable graphical html support"
echo " --disable-png disable png support"
echo " --disable-plugins disable plugins support"
echo " --disable-ffmpeg disable ffmpeg support"
2004-05-29 10:17:37 +00:00
echo " --with-ffmpegdir=DIR find ffmpeg sources and libraries in DIR"
echo " for audio/video/image support"
echo ""
echo "Advanced options (experts only):"
echo " --source-path=PATH path of source code [$source_path]"
echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
echo " --cc=CC use C compiler CC [$cc]"
echo " --make=MAKE use specified make [$make]"
echo " --with-ffmpeglibdir=DIR set ffmpeg object files directory"
echo ""
2006-04-24 11:58:17 +00:00
echo "NOTE: The object files are built at the place where configure is launched"
2004-05-29 10:17:37 +00:00
exit 1
fi
echo "Install prefix $prefix"
echo "Source path $source_path"
echo "C compiler $cc"
echo "Tiny build $tiny"
echo "X11 support $x11"
echo "Xvideo support $xv"
#echo "Xrender support $xrender"
echo "libpng support $png"
echo "Graphical HTML $html"
echo "Plugins support $plugins"
2005-05-04 19:40:26 +00:00
echo "Initcall support $initcalls"
echo "All kmaps $kmaps"
echo "All modes $modes"
echo "Bidir support $bidir"
2004-05-29 10:17:37 +00:00
echo "FFMPEG support $ffmpeg"
echo "Creating config.mak and config.h"
echo "# Automatically generated by configure - do not modify" > config.mak
echo "/* Automatically generated by configure - do not modify */" > $TMPH
echo "prefix=$prefix" >> config.mak
echo "#define CONFIG_QE_PREFIX \"$prefix\"" >> $TMPH
echo "MAKE=$make" >> config.mak
echo "CC=$cc" >> config.mak
echo "GCC_MAJOR=$gcc_major" >> config.mak
echo "HOST_CC=$host_cc" >> config.mak
echo "AR=$ar" >> config.mak
echo "STRIP=$strip -s -R .comment -R .note" >> config.mak
echo "CFLAGS=$CFLAGS" >> config.mak
echo "LDFLAGS=$LDFLAGS" >> config.mak
2005-05-04 19:40:26 +00:00
echo "EXE=$exe" >> config.mak
2004-05-29 10:17:37 +00:00
if test "$cpu" = "x86" ; then
echo "TARGET_ARCH_X86=yes" >> config.mak
echo "#define ARCH_X86 1" >> $TMPH
elif test "$cpu" = "armv4l" ; then
echo "TARGET_ARCH_ARMV4L=yes" >> config.mak
echo "#define ARCH_ARMV4L 1" >> $TMPH
elif test "$cpu" = "alpha" ; then
echo "TARGET_ARCH_ALPHA=yes" >> config.mak
echo "#define ARCH_ALPHA 1" >> $TMPH
elif test "$cpu" = "powerpc" ; then
echo "TARGET_ARCH_POWERPC=yes" >> config.mak
echo "#define ARCH_POWERPC 1" >> $TMPH
fi
if test "$bigendian" = "yes" ; then
echo "WORDS_BIGENDIAN=yes" >> config.mak
echo "#define WORDS_BIGENDIAN 1" >> $TMPH
fi
if test "$gprof" = "yes" ; then
echo "TARGET_GPROF=yes" >> config.mak
echo "#define HAVE_GPROF 1" >> $TMPH
fi
if test "$lshared" = "yes" ; then
echo "BUILD_SHARED=yes" >> config.mak
echo "PIC=-fPIC" >> config.mak
fi
echo "EXTRALIBS=$extralibs" >> config.mak
echo -n "VERSION=" >>config.mak
2005-05-04 19:40:26 +00:00
echo -n `head $source_path/VERSION` >> config.mak
echo "" >> config.mak
2004-05-29 10:17:37 +00:00
echo -n "#define QE_VERSION \"" >> $TMPH
2004-11-30 10:16:15 +00:00
echo -n `head $source_path/VERSION` >> $TMPH
2004-05-29 10:17:37 +00:00
echo "\"" >> $TMPH
if test "$network" = "yes" ; then
echo "#define CONFIG_NETWORK 1" >> $TMPH
echo "CONFIG_NETWORK=yes" >> config.mak
fi
if test "$win32" = "yes" ; then
echo "#define CONFIG_WIN32 1" >> $TMPH
echo "CONFIG_WIN32=yes" >> config.mak
fi
2005-05-04 19:40:26 +00:00
if test "$cygwin" = "yes" ; then
echo "#define CONFIG_CYGWIN 1" >> $TMPH
echo "CONFIG_CYGWIN=yes" >> config.mak
fi
2004-05-29 10:17:37 +00:00
if test "$x11" = "yes" ; then
echo "#define CONFIG_X11 1" >> $TMPH
echo "CONFIG_X11=yes" >> config.mak
fi
if test "$xv" = "yes" ; then
echo "#define CONFIG_XV 1" >> $TMPH
echo "CONFIG_XV=yes" >> config.mak
fi
if test "$xrender" = "yes" ; then
echo "#define CONFIG_XRENDER 1" >> $TMPH
echo "CONFIG_XRENDER=yes" >> config.mak
fi
if test "$tiny" = "yes" ; then
echo "#define CONFIG_TINY 1" >> $TMPH
echo "CONFIG_TINY=yes" >> config.mak
fi
if test "$html" = "yes" ; then
echo "#define CONFIG_HTML 1" >> $TMPH
echo "CONFIG_HTML=yes" >> config.mak
fi
if test "$plugins" = "yes" ; then
echo "#define CONFIG_DLL 1" >> $TMPH
echo "CONFIG_DLL=yes" >> config.mak
fi
2005-05-04 19:40:26 +00:00
if test "$initcalls" = "yes" ; then
echo "#define CONFIG_INIT_CALLS 1" >> $TMPH
echo "CONFIG_INIT_CALLS=yes" >> config.mak
fi
2004-05-29 10:17:37 +00:00
if test "$png" = "yes" ; then
echo "#define CONFIG_PNG_OUTPUT 1" >> $TMPH
echo "CONFIG_PNG_OUTPUT=yes" >> config.mak
fi
if test "$ffmpeg" = "yes" ; then
echo "#define CONFIG_FFMPEG 1" >> $TMPH
echo "CONFIG_FFMPEG=yes" >> config.mak
echo "FFMPEG_SRCDIR=$ffmpeg_srcdir" >> config.mak
echo "FFMPEG_LIBDIR=$ffmpeg_libdir" >> config.mak
fi
if test "$kmaps" = "yes" ; then
echo "#define CONFIG_ALL_KMAPS 1" >> $TMPH
echo "CONFIG_ALL_KMAPS=yes" >> config.mak
fi
if test "$modes" = "yes" ; then
echo "#define CONFIG_ALL_MODES 1" >> $TMPH
echo "CONFIG_ALL_MODES=yes" >> config.mak
fi
if test "$bidir" = "yes" ; then
echo "#define CONFIG_UNICODE_JOIN 1" >> $TMPH
echo "CONFIG_UNICODE_JOIN=yes" >> config.mak
fi
2004-05-29 10:17:37 +00:00
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
DIRS="tests"
FILES="Makefile tests/Makefile"
for dir in $DIRS ; do
2006-04-24 11:58:17 +00:00
mkdir -p $dir
2004-05-29 10:17:37 +00:00
done
for f in $FILES ; do
ln -sf $source_path/$f $f
done
fi
echo "SRC_PATH=$source_path" >> config.mak
diff $TMPH config.h >/dev/null 2>&1
if test $? -ne 0 ; then
2005-05-04 19:40:26 +00:00
mv -f $TMPH config.h
2004-05-29 10:17:37 +00:00
else
2005-05-04 19:40:26 +00:00
echo "config.h is unchanged"
2004-05-29 10:17:37 +00:00
fi
2005-05-11 09:04:12 +00:00
rm -f $TMPC $TMPO $TMPS $TMPH $TMPE