#!/bin/sh

if [ "$help" = "1" ]
then
	cat << EOF
Qt options:

  --qt-libdir             - Location of Qt lib directory [/usr/lib/qt4]
  --qt-includedir         - Location of Qt include directory [/usr/include/qt4]
  --kde-libdir            - Location of KDE lib directory [/usr/lib]
  --kde-includedir        - Location of KDE include directory [/usr/include/kde]
  --exif-libdir           - Location of libexif lib directory [/usr/lib]
  --exif-includedir       - Location of libexif include directory [/usr/include/libexif]
  --without-kde           - Don't link to KDE libraries

EOF

else
	targetos=$(uname -s)
	case $targetos in
	MINGW32*)
		export LIBSUF=.dll
		;;
	Darwin)
		export LIBSUF=.dylib
		;;
	Linux|FreeBSD|NetBSD)
		export LIBSUF=.so
		;;
	*)
		;;
	esac

	qt_includedir=
	qt_libdir=

	if [ "$QTDIR" != "" ]
	then
		qt_includedir="$QTDIR/include"
		qt_libdir="$QTDIR/lib"
	fi

	export without_kde=
	export without_opengl=

	for i in "$@"
	do
		case $i in
			--qt-libdir=* )	qt_libdir="${i#--qt-libdir=}" ;;
			--qt-includedir=* )	qt_includedir="${i#--qt-includedir=}" ;;
			--kde-libdir=* )	kde_libdir="${i#--kde-libdir=}" ;;
			--kde-includedir=* )	kde_includedir="${i#--kde-includedir=}" ;;
			--exif-libdir=* )	exif_libdir="${i#--exif-libdir=}" ;;
			--exif-includedir=* )	exif_includedir="${i#--exif-includedir=}" ;;
			--without-kde )	without_kde="true" ;;
		esac
	done

	echo > config.mak

	pkg-config --exists 'libexif'
	if [ $? -eq 0 ]
	then
		echo "- Libexif found, enabling auto rotate"
		echo "USE_EXIF=1" >> config.mak
		echo EXIFCXXFLAGS=$(pkg-config --cflags libexif ) >> config.mak
		echo EXIFCXXFLAGS += -DUSE_EXIF >> config.mak
		echo EXIFLIBS=$(pkg-config --libs libexif) >> config.mak
	elif [ -d "$exif_libdir" -a -d "$exif_includedir" ]
	then
		# test if we have a libexif
		if [ -f "$exif_libdir/exif-data.h" ]
		then
			echo "- Libexif found, enabling auto rotate"
			echo "USE_EXIF=1" >> config.mak
			echo EXIFCXXFLAGS=-I$exif_includedir >> config.mak
			echo EXIFCXXFLAGS += -DUSE_EXIF >> config.mak
			echo EXIFLIBS=-L$exif_libdir lexif >> config.mak
		else
			echo "- Libexif not found, disabling exif features (auto rotate)"
		fi
	else
		echo "- Libexif not found, disabling exif features (auto rotate)"
	fi

	if [ -d "$qt_libdir" -a -d "$qt_includedir" ]
	then
		# test if we have a Qt5 or Qt4
		if [ -f "$qt_libdir/libQt5Core.so" ] || [ -d "$qt_libdir/QtWidgets.framework" ] || [ -f "$qt_libdir/libQt5Core.a" ]
		then
			echo "- Qt version 5.x detected"
			# TODO re-enable KDE support when KDE Frameworks 5 widely available
			without_kde=true
		elif [ -f "$qt_libdir/libQtCore.so" ] || [ -d "$qt_libdir/QtCore.framework" ] || [ -f "$qt_libdir/libQtCore4.a" ]
		then
			echo "- Qt version 4.x detected"
		else
			echo "- Qt not found: disabling"
			touch ../disable-qt
			exit 0
		fi

		echo "- Include directory: " $qt_includedir

		# Qt5 on Linux, BSD, or Windows
		if [ -f "$qt_libdir/libQt5Core.so" ] || [ -f "$qt_libdir/libQt5Core.a" ]
		then
			echo QTCXXFLAGS=-I$qt_includedir -I$qt_includedir/QtCore -I$qt_includedir/QtGui -I$qt_includedir/QtXml -I$qt_includedir/QtSvg -I$qt_includedir/QtWidgets >> config.mak
			echo QTLIBS=-Wl,-rpath-link,"$qt_libdir" -L"$qt_libdir" -lQt5Core -lQt5Gui -lQt5Xml -lQt5Svg -lQt5Widgets >> config.mak
			if [ -f "$qt_libdir/libQt5OpenGL.so" ] || [ -f "$qt_libdir/libQt5OpenGL.a" ]
			then
				echo QTCXXFLAGS+=-I$qt_includedir/QtOpenGL >> config.mak
				echo QTLIBS+=-lQt5OpenGL >> config.mak
			else
				echo "- Qt5OpenGL not found: disabling"
				without_opengl=true
			fi
		# Qt5 on OS X
		elif [ -d "$qt_libdir/QtWidgets.framework" ]
		then
			echo QTCXXFLAGS=-I$qt_includedir -F$qt_libdir \
				-I$qt_includedir/QtCore -I$qt_libdir/QtCore.framework/Headers \
				-I$qt_includedir/QtGui -I$qt_libdir/QtGui.framework/Headers \
				-I$qt_includedir/QtXml -I$qt_libdir/QtXml.framework/Headers \
				-I$qt_includedir/QtSvg -I$qt_libdir/QtSvg.framework/Headers \
				-I$qt_includedir/QtOpenGL -I$qt_libdir/QtOpenGL.framework/Headers \
				-I$qt_includedir/QtWidgets -I$qt_libdir/QtWidgets.framework/Headers \
				>> config.mak
			echo QTLIBS=-F"$qt_libdir" -framework QtCore -framework QtGui -framework \
				QtXml -framework QtSvg -framework QtOpenGL -framework QtWidgets >> config.mak
		# Qt4 on OS X
		elif [ -d "$qt_libdir/QtGui.framework" ]
		then
			echo QTCXXFLAGS=$(pkg-config --cflags QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak
			echo QTLIBS=$(pkg-config --libs QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak
		# Qt4 on Windows
		elif [ -f "$qt_libdir/libQtCore4.a" ]
		then
			echo QTCXXFLAGS=-I$qt_includedir -I$qt_includedir/QtCore -I$qt_includedir/QtGui -I$qt_includedir/QtXml -I$qt_includedir/QtSvg -I$qt_includedir/QtOpenGL >> config.mak
			echo QTLIBS=-Wl,-enable-auto-import -L$qt_libdir -lQtCore4 -lQtGui4 -lQtXml4 -lQtSvg4 -lQtOpenGL4 >> config.mak
		# Qt4 on Linux or BSD
		else
			echo QTCXXFLAGS=-I$qt_includedir  -I$qt_includedir/QtCore -I$qt_includedir/QtGui -I$qt_includedir/QtXml -I$qt_includedir/QtSvg -I$qt_includedir/QtOpenGL >> config.mak
			echo QTLIBS=-L$qt_libdir -lQtCore -lQtGui -lQtXml -lQtSvg -lQtOpenGL >> config.mak
		fi
	else
		pkg-config --exists 'Qt5Gui'
		if [ $? -eq 0 ]
		then
			echo "- Qt version 5.x detected"
			echo QTCXXFLAGS=$(pkg-config --cflags Qt5Core Qt5Gui Qt5Xml Qt5Svg Qt5Widgets) >> config.mak
			echo QTLIBS=$(pkg-config --libs Qt5Core Qt5Gui Qt5Xml Qt5Svg Qt5Widgets) >> config.mak
			pkg-config --exists 'Qt5OpenGL'
			if [ $? -eq 0 ]
			then
				echo QTCXXFLAGS+=$(pkg-config --cflags Qt5OpenGL) >> config.mak
				echo QTLIBS+=$(pkg-config --libs Qt5OpenGL) >> config.mak
			else
				echo "- Qt5OpenGL not found: disabling"
				without_opengl=true
			fi
		else
			pkg-config --exists 'QtGui >= 4'
			if [ $? -eq 0 ]
			then
				echo "- Qt version 4.x detected"
				echo QTCXXFLAGS=$(pkg-config --cflags QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak
				echo QTLIBS=$(pkg-config --libs QtCore QtGui QtXml QtSvg QtOpenGL) >> config.mak
			else
				echo "- Qt not found - disabling"
				touch ../disable-qt
			fi
		fi
	fi

	if [ "$without_opengl" = "" ]
	then
		echo "USE_QT_OPENGL=1" >> config.mak
	fi

	if [ "$without_kde" = "" ]
	then
		kde4-config
		if [ $? -eq 0 ] && [ "$qt4_found" != "" ]
		then
			# test if we have KDE4, required on some systems to get Qt extra formats (xcf, ...)
			if [ "$kde_includedir" = "" ]
			then
				  kde_includedir=`kde4-config --install include`
			fi
			if [ "$kde_libdir" = "" ]
			then
				  kde_libdir=`kde4-config --install lib`
			fi
			if [ -d "$kde_includedir" ] && [ -d "$kde_libdir" ]
			then
				echo "- KDE version 4.x detected, will enable extra image formats"
				echo "#define USE_KDE4" >> config.h
				echo "USE_KDE4=1" >> config.mak
				echo KDECXXFLAGS=-I$kde_includedir >> config.mak
				# the -L with kde4/devel is for Fedora
				echo KDELIBS=-L$kde_libdir -L${kde_libdir}/kde4/devel -lkdecore >> config.mak
			fi
		fi
	fi
	
	pkg-config fftw3
	if [ $? -eq 0 ]
	then
		echo "- fftw found, enabling lightshow"
		echo "USE_FFTW=1" >> config.mak
		echo FFTWCXXFLAGS=$(pkg-config --cflags fftw3 ) >> config.mak
		echo FFTWCXXFLAGS += -DUSE_FFTW >> config.mak
		echo FFTWLIBS=$(pkg-config --libs fftw3) >> config.mak
		
	else
		echo "- fftw not found: disabling lightshow filter"
	fi

	[ "$gpl3" = "true" ] && echo GPL3=1 >> config.mak
	exit 0
fi
