#!/bin/sh

#
# It's your choice!
#
# DIET=/opt/diet/bin/diet

FBDEV=yes
SDL=no

INPUT_DRIVERS="ps2mouse keyboard"
GRAPHICS_DRIVERS="matrox"

IDIRECTFBFONT_FT2=yes

IDIRECTFBIMAGEPROVIDER_JPEG=yes
IDIRECTFBIMAGEPROVIDER_PNG=yes
IDIRECTFBIMAGEPROVIDER_GIF=yes

VERSION="`pkg-config directfb --modversion`"
PREFIX="`pkg-config directfb --variable=prefix`"

CFLAGS="`pkg-config directfb --cflags` $CFLAGS"
CFLAGS="-DVERSION=\"$VERSION\" -DFONT=\"$PREFIX/share/directfb-examples/fonts/decker.ttf\" -DDATADIR=\"$PREFIX/share/directfb-examples\" $CFLAGS"

MODULEDIR=`pkg-config directfb-internal --variable=moduledir`

#
# Check usage
#
if [ x"$1" = x ]; then
	echo "Usage: $0 <program>"
	exit 1
fi


#
# Input drivers
#
INPUT="-L$MODULEDIR/inputdrivers"
for i in $INPUT_DRIVERS; do
	INPUT="$INPUT -ldirectfb_$i -Wl,-udirectfb_$i"
done

#
# Graphics drivers
#
GRAPHICS="-L$MODULEDIR/gfxdrivers"
for i in $GRAPHICS_DRIVERS; do
	GRAPHICS="$GRAPHICS -ldirectfb_$i -Wl,-udirectfb_$i"
done

#
# IDirectFBFont
#
INTERFACES="$INTERFACES -L$MODULEDIR/interfaces/IDirectFBFont"
if [ x"$IDIRECTFBFONT_FT2" = xyes ]; then
	INTERFACES="$INTERFACES -lidirectfbfont_ft2 -Wl,-uIDirectFBFont_FT2 -lfreetype"
fi

#
# IDirectFBImageProvider
#
INTERFACES="$INTERFACES -L$MODULEDIR/interfaces/IDirectFBImageProvider"
if [ x"$IDIRECTFBIMAGEPROVIDER_JPEG" = xyes ]; then
	INTERFACES="$INTERFACES -lidirectfbimageprovider_jpeg -Wl,-uIDirectFBImageProvider_JPEG -ljpeg"
fi
if [ x"$IDIRECTFBIMAGEPROVIDER_PNG" = xyes ]; then
	INTERFACES="$INTERFACES -lidirectfbimageprovider_png -Wl,-uIDirectFBImageProvider_PNG -lpng -lz -lm"
fi
if [ x"$IDIRECTFBIMAGEPROVIDER_GIF" = xyes ]; then
	INTERFACES="$INTERFACES -lidirectfbimageprovider_gif -Wl,-uIDirectFBImageProvider_GIF"
fi

#
# Systems
#
if [ x"$FBDEV" = xyes ]; then
	SYSTEMS="-Wl,-udirectfb_fbdev"
else
	SYSTEMS=""
fi
if [ x"$SDL" = xyes ]; then
	SYSTEMS="$SYSTEMS -Wl,-udirectfb_sdl -Wl,-udirectfb_sdlinput -lSDL -L/usr/X11R6/lib -lX11 -lXext -lm -ldl"
fi


#
# Build it.
#
if [ -n "$2" ]; then
	FILES="$*"
else
	FILES="$1 $1.c"
fi

COMMAND="$DIET gcc $CFLAGS -o $FILES -static $INPUT $GRAPHICS $INTERFACES -ldirectfb -lpthread $SYSTEMS"

echo $COMMAND
$COMMAND
