#!/bin/sh
#
# Fallback configure script for pekwm in case CMake is unavailable.
#

PREFIX="/usr/local"
MANDIR="share/man"
OS=`uname`
REL=`uname -r`
CONF_CXXFLAGS_EXTRA="-O2"
CONF_CXXFLAGS_PEDANTIC=""

# parse command line arguments, bail out on first unknown argument
while test "x$1" != "x"; do
	arg=`echo $1 | sed 's/=.*//'`
	case $arg in
		"--devel")
			CONF_CXXFLAGS_EXTRA="-O0 -Wall -Werror"
			shift
			;;
		"--help")
			echo "usage: $0"
			echo ""
			echo "  --devel        enable developer compiler flags"
			echo "  --help         print this information"
			echo "  --mandir=PATH  relative path manpages"
			echo "  --prefix=PATH  path to install pekwm"
			echo ""
			exit 0
			;;
		"--mandir")
			MANDIR=`echo $2 | sed -e 's/--mandir=//' -e 's@/$@@'`
			shift
			;;
		"--pedantic")
			CONF_CXXFLAGS_PEDANTIC="-pedantic"
			shift
			;;
		"--prefix")
			PREFIX=`echo $1 | sed -e 's/--prefix=//' -e 's@/$@@'`
			shift
			;;
		*)
			echo "unknown argument $1"
			exit 1
			;;
	esac
done

# extract version information from CMakeLists.txt to avoid duplication
VERSION_MAJOR=`awk '/set\(pekwm_VERSION_MAJOR/ { print $2 }' CMakeLists.txt | tr -d ')'`
VERSION_MINOR=`awk '/set\(pekwm_VERSION_MINOR/ { print $2 }' CMakeLists.txt | tr -d ')'`
VERSION_PATCH=`awk '/set\(pekwm_VERSION_PATCH/ { print $2 }' CMakeLists.txt | tr -d ')'`

PLATFORM="generic"
CONFIG_PLATFORM="generic"

if test "x$OS" = "xFreeBSD"; then
	PLATFORM="FreeBSD"
elif test "x$OS" = "xLinux"; then
	PLATFORM="linux"
elif test "x$OS" = "xOpenBSD"; then
	if test `echo $REL |tr -d .` -lt 35; then
		# gcc 2.95
		PLATFORM="OpenBSD34"
		CONFIG_PLATFORM="OpenBSD34"
	elif test `echo $REL |tr -d .` -lt 62; then
		# gcc
		PLATFORM="OpenBSD61"
		CONFIG_PLATFORM="OpenBSD61"
	else
		PLATFORM="OpenBSD"
		CONFIG_PLATFORM="OpenBSD"
	fi
elif test "x$OS" = "xNetBSD"; then
	PLATFORM="NetBSD"
elif test "x$OS" = "xSunOS"; then
	if test "x$REL" = "x5.11"; then
		PLATFORM="SunOS-5.11"
	else
		PLATFORM="SunOS"
		CONFIG_PLATFORM="SunOS"
		isainfo -v |grep 64-bit 2>&1 >/dev/null
		if test $? -eq 0; then
			SUNOS_ARCH_LIB="/`isainfo -n`"
			SUNOS_ARCH_FLAG="-m64"
		else
			SUNOS_ARCH_LIB=""
			SUNOS_ARCH_FLAG=""
		fi
	fi
fi

# developer tool used to create tags file
which exctags >/dev/null 2>&1
if test $? -eq 0; then
	CONF_CTAGS="exctags"
else
	CONF_CTAGS="ctags"
fi

sed -e "s@VERSION_MAJOR@$VERSION_MAJOR@g" \
    -e "s@VERSION_MINOR@$VERSION_MINOR@g" \
    -e "s@VERSION_PATCH@$VERSION_PATCH@g" \
    -e "s@CONF_PLATFORM@$PLATFORM@g" \
    -e "s@CONF_PREFIX@$PREFIX@g" \
    -e "s@CONF_MANDIR@$MANDIR@g" \
    -e "s@CONF_SUNOS_ARCH_LIB@$SUNOS_ARCH_LIB@g" \
    -e "s@CONF_SUNOS_ARCH_FLAG@$SUNOS_ARCH_FLAG@g" \
    -e "s@CONF_CXXFLAGS_EXTRA@$CONF_CXXFLAGS_EXTRA $CONF_CXXFLAGS_PEDANTIC@g" \
    -e "s@CONF_CTAGS@$CONF_CTAGS@g" \
    mk/config.mk.in > mk/config.mk

sed -e "s@VERSION_MAJOR@$VERSION_MAJOR@g" \
    -e "s@VERSION_MINOR@$VERSION_MINOR@g" \
    -e "s@VERSION_PATCH@$VERSION_PATCH@g" \
    -e "s@CONFIG_PLATFORM@$CONFIG_PLATFORM@g" \
    mk/config.h.in > mk/config.h

echo "Configured pekwm $VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH" \
     "for $PLATFORM installing to $PREFIX"
