#!/bin/sh
#
# Copyright (c) 2019 David Demelier <markand@malikania.fr>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#

PKGNAME=fluxbox
PKGVERSION=1.3.7
PKGREVISION=1
PKGLICENSE="MIT"
PKGSUMMARY="simple window manager forked from blackbox"
PKGDOWNLOAD="http://sourceforge.net/projects/fluxbox/files/$PKGNAME/$PKGVERSION/$PKGNAME-$PKGVERSION.tar.xz"
PKGDEPENDS="fontconfig
            libx11
            libxext
            libxft
            libxinerama
            libxpm
            libxrandr
            libxrender"
PKGOPTIONS="EWMH
            FRIBIDI
            IMLIB2
            REGEX
            REMEMBER
            SLIT
            SYSTRAY
            TOOLBAR
            TTF"

: ${CHOST:=$(uname -m)-linux-musl}
: ${CBUILD:=$(uname -m)-linux-musl}
: ${CC:=clang}
: ${CFLAGS:=-O2}
: ${CXX:=clang++}
: ${CXXFLAGS:=-O2}
: ${LDFLAGS:=}
: ${LIBS:=}
: ${EWMH:=yes}
: ${FRIBIDI:=yes}
: ${IMLIB2:=yes}
: ${REGEX:=yes}
: ${REMEMBER:=yes}
: ${SLIT:=yes}
: ${SYSTRAY:=yes}
: ${TOOLBAR:=yes}
: ${TTF:=yes}

if [ "$EWMH" = "yes" ]; then
	with_ewmh="--enable-ewmh"
else
	with_ewmh="--disable-ewmh"
fi

if [ "$FRIBIDI" = "yes" ]; then
	PKGDEPENDS="fribidi $PKGDEPENDS"
	with_fribidi="--enable-fribidi"
else
	with_fribidi="--disable-fribidi"
fi

if [ "$IMLIB2" = "yes" ]; then
	PKGDEPENDS="imlib2 $PKGDEPENDS"
	with_imlib2="--enable-imlib2"
else
	with_imlib2="--disable-imlib2"
fi

if [ "$REGEX" = "yes" ]; then
	with_regex="--enable-regexp"
else
	with_regex="--disable-regexp"
fi

if [ "$REMEMBER" = "yes" ]; then
	with_remember="--enable-remember"
else
	with_remember="--disable-remember"
fi

if [ "$SLIT" = "yes" ]; then
	with_slit="--enable-slit"
else
	with_slit="--disable-slit"
fi

if [ "$SYSTRAY" = "yes" ]; then
	with_systray="--enable-systray"
else
	with_systray="--disable-systray"
fi

if [ "$TOOLBAR" = "yes" ]; then
	with_toolbar="--enable-toolbar"
else
	with_toolbar="--disable-toolbar"
fi

if [ "$TTF" = "yes" ]; then
	PKGDEPENDS="freetype $PKGDEPENDS"
	with_ttf="--enable-freetype2"
else
	with_ttf="--disable-freetype2"
fi

build()
{
	rm -rf $PKGNAME-$PKGVERSION
	tar xvf $PKGNAME-$PKGVERSION.tar.xz
	cd $PKGNAME-$PKGVERSION

	# --disable-nls: does not build (error related to fluxbox.cat)
	patch -p1 < ../patch-clang.patch
	CC="$CC" \
	CFLAGS="$CFLAGS" \
	CXX="$CXX" \
	CXXFLAGS="$CXXFLAGS" \
	LDFLAGS="$LDFLAGS" \
	LIBS="$LIBS" \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix= \
		--disable-nls \
		$with_ewmh \
		$with_fribidi \
		$with_imlib2 \
		$with_regex \
		$with_remember \
		$with_slit \
		$with_systray \
		$with_toolbar \
		$with_ttf
	make
	make install DESTDIR=$DESTDIR

	cd ..
	rm -rf $PKGNAME-$PKGVERSION
}
