-rwxr-xr-x | configure | 270 |
1 files changed, 270 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100755 index 0000000..d36fd44 --- a/dev/null +++ b/configure @@ -0,0 +1,270 @@ +#!/bin/sh +# +# Configures to build the Qtopia Environment +# +# Copyright 1999-2000 Trolltech AS. All rights reserved. +# + +PLATFORM=linux-generic-g++ +SHARING=shared +DEBUG= +QCONFIGARG= + +touch .test.qpe. +if [ '!' -f ${QPEDIR}/.test.qpe. ]; +then + rm .test.qpe. + echo + echo + echo ' The environment variable $QPEDIR is not set correctly. It is currently' + echo ' set to "'$QPEDIR'", but it should be set to this directory,' + echo ' which is "'`pwd`'".' + echo + echo ' Please read the INSTALL file for instructions on how to set $QPEDIR' + echo ' correctly. If you have set $QPEDIR in your .profile or .login, you ' + echo ' will need to log out and log in again to make the setting effective.' + echo + echo + exit 1 +fi +rm .test.qpe. + +mkdir -p include/qpe +( cd include/qpe && rm -f *.h; ln -s ../../library/*.h .; ln -s ../../library/backend/*.h .; rm -f *_p.h; ) + +VERSION_MAJ=$(sed -n -e 's/.*QPE_VERSION "\([0-9]*\)\.[0-9]*\.[0-9]*.*".*/\1/p' <include/qpe/version.h) +VERSION_MIN=$(sed -n -e 's/.*QPE_VERSION "[0-9]*\.\([0-9]\)\.[0-9]*.*".*/\1/p' <include/qpe/version.h) +VERSION_PAT=$(sed -n -e 's/.*QPE_VERSION "[0-9]*\.[0-9]*\.\([0-9]*\).*".*/\1/p' <include/qpe/version.h) + +TOMAKE= + +if grep -q 'VERSION_STR.*"3' $QTDIR/include/qglobal.h +then + QT3=yes +else + QT3=no +fi + +# Parse the arguments, setting things to "yes" or "no". + +while [ -n "$1" ]; do + case $1 in + -platform|-xplatform) # No difference since we don't need to build moc, etc. + shift; PLATFORM=$1 + ;; + -release) + DEBUG= + ;; + -debug) + DEBUG=-debug + ;; + -shared) + SHARING=shared + ;; + -static) + SHARING=static + ;; + -qconfig) + # optional way to specify the qconfig-qpe.h is to pass -qconfig qpe + shift; QCONFIGARG=DEFINES+=QCONFIG='\"'$1'\"' # Don't quote me on that. + ;; + -make) + shift; TOMAKE="$TOMAKE $1" + ;; + -qt3) + QT3=yes + ;; + *) + HELP=yes;; + esac + shift +done + +TARGET=configs/$PLATFORM-$SHARING$DEBUG + +if [ '!' -f $TARGET ] +then + if [ -f configs/linux-$PLATFORM-g++-$SHARING$DEBUG ] + then + TARGET=configs/linux-$PLATFORM-g++-$SHARING$DEBUG + else + echo + echo ' The specified platform/compiler not supported: ' $TARGET + echo + exit 2 + fi +fi + +# Next, emit a usage message if something failed. + +if [ "$HELP" = "yes" ]; then + cat <<EOF +Usage: $0 [-debug] [-release] [-shared] [-static] [-qt3] [-platform ...] + +The defaults (*) are usually acceptable. Here is a short explanation of +each option: + + * -release ........... Compile and link Qt with debugging turned off. + -debug ............. Compile and link Qt with debugging turned on. + + * -shared ............ Create and use a shared Qt library (libqt.so) + -static ............ Create and use a static Qt library (libqt.a) + + -qt3 ............... Configure for use with Qt 3.x + + -platform target ... The platform you are building on ($PLATFORM) +EOF + exit 0; +fi + + +echo Creating makefiles... + +sed -e 's/^\(VERSION.*= \).*/\1'$VERSION_MAJ.$VERSION_MIN.$VERSION_PAT/ <library/library.pro >library/library.pro-v +mv library/library.pro-v library/library.pro + +if [ "$QT3" = yes ] +then + VCONFIG="CONFIG+=qt3" +else + VCONFIG="CONFIG+=qt2" +fi + +if [ -f $TMAKEPATH/tmake.conf ] +then + # You have tmake. We'll regenerate the file for you... + echo "Makefiles will be regenerated." +fi + +H=`pwd` +if [ -z "$TOMAKE" ] +then + TOMAKE=`make showcomponents` +fi + +for a in $TOMAKE ; do + N=$a/Makefile + M=$a/Makefile.in + O=$a/Makefile.add + f=`basename $a` + + if [ -f $TMAKEPATH/tmake.conf -a -f $a/$f.pro ] + then + ( cd $a; + TMAKEPATH=$QTDIR/tmake:$TMAKEPATH \ + tmake $QCONFIGARG CONFIG+=embedded $VCONFIG \ + -t $H/qt/tmake/propagate.t $f.pro | + sed -e "s|$QTDIR|\$(QTDIR)|g" -e "s|$QPEDIR|\$(QPEDIR)|g" >Makefile.in; + ) + echo -n "." + appname=`grep '^TARGET' $a/$f.pro | sed 's/^TARGET.*=//' | sed 's/ //g'` + translation=`grep '^TRANSLATION' $a/$f.pro | sed 's,^TRANSL.*=.*i18n\/.*\/,,' | sed 's/ //g' | sed 's,\.ts.*,,' | sed 's,^lib,,' ` + if [ -n "$translation" -a -n "$appname" ] + then + if [ $appname != $translation ] + then + echo + echo "Warning: translation and appname disagree in $a/$f.pro" + fi + fi + + fi + + cat > $N <<EOF +############################################################################# +# Automatically generated from $M +# Build options from $1 +############################################################################# + +EOF + + SED= + PLATFORM_CFLAGS= + + if [ "$f" = "embeddedkonsole" ] + then + case $PLATFORM in + *x86*|*generic*|*ipaq*) + SED="$SED /^LIBS.*=/s/\$/ -lutil/;" + PLATFORM_CFLAGS="-DHAVE_OPENPTY" + ;; *) + SED= + esac + elif [ "$f" = "libmpeg3" ] + then + # Patch our Makefile.in file with the platform specifics for the libmpeg3 library + # Use the C++ compiler to compile the .c files (because the fixed-point classes are C++ code) + SED='s/\$(CC)/\$(CXX)/;' + case $PLATFORM + in + # For x86 turn on using floating point, compile mmx and css code + *x86*) + # "-funroll-loops -fomit-frame-pointer -malign-loops=2 -malign-jumps=2 -malign-functions=2 -march=i486" + PLATFORM_CFLAGS="-DHAVE_MMX -DHAVE_CSS" + SED="$SED /SOURCES.*=/s/=/= video\\/mmxidct.S video\\/reconmmx.s\ /;" + # For generic turn on using floating point + ;; *generic*) + PLATFORM_CFLAGS="" + # For the ipaq use fixed point maths, don't compile the mmx or css code + ;; *ipaq*) + PLATFORM_CFLAGS="-DUSE_FIXED_POINT" + ;; *) + # For 'other platforms', turn off optimizations and use fixed point + PLATFORM_CFLAGS="-O -DUSE_FIXED_POINT" + esac + elif [ "$f" = "libmad" ] + then + # Patch our Makefile.in file with the platform specifics for the libmad library + case $PLATFORM + in + # For x86 use intel optimizations + *x86*) + PLATFORM_CFLAGS="-DFPM_INTEL" + # For the ipaq use ARM asm optimizations + ;; *ipaq*) + PLATFORM_CFLAGS="-DFPM_ARM" + SED="$SED /SOURCES.*=/s/=/= idmt_arm.S /;" + # For generic platforms use the C 64-bit implementation + ;; *generic*) + PLATFORM_CFLAGS="-DFPM_64BIT" + # For 'other platforms' use the ARM code + ;; *) + PLATFORM_CFLAGS="-DFPM_ARM" + SED="$SED /SOURCES.*=/s/=/= idmt_arm.S /;" + esac + fi + if [ -n "$PLATFORM_CFLAGS" ] + then + # Append the addition c-flags we have defined + SED="$SED /CFLAGS.*=.*/s/\$/ $PLATFORM_CFLAGS/;" + SED="$SED /CXXFLAGS.*=.*/s/\$/ $PLATFORM_CFLAGS/;" + fi + cat $TARGET >> $N + if [ -n "$SED" ] + then + sed -e "$SED" $M >> $N + else + cat $M >> $N + fi + + cat >> $N <<EOF + +lupdate: + lupdate $f.pro + +lrelease: + lrelease $f.pro + +EOF + if [ -f "$O" ] + then + cat >> $N $O + fi + +done + +MAKE=make +echo +echo "QPE is now configured for building. Just run $MAKE (or $MAKE single)." +echo "To reconfigure, run $MAKE clean and configure." +echo |