#!/bin/sh

. scripts/configure.sh || exit 1

check_cflags()
{
	local i

	check_cc_flag -std=gnu99 -pipe -Wall -Wshadow -Wcast-align -Wpointer-arith \
		-Wundef -Wmissing-prototypes -Wredundant-decls

	for i in -Wdeclaration-after-statement -Wold-style-definition -Wno-pointer-sign
	do
		check_cc_flag $i
	done
}

check_xft()
{
	pkg_check_modules xft "xft" "-I/usr/include/freetype2" "-lXft -lXrender -lfontconfig -lfreetype -lz -lX11"
	return $?
}

flag_dir()
{
	set_var $1 "$2"
}

flag_dev()
{
	# can't add to CFLAGS yet
	EXTRA_CFLAGS="-Werror"

	prefix=$HOME
	DEBUG=2
}

# defaults
prefix=/usr/local
bindir=""
datadir=""
DEBUG=0

add_flag prefix    y flag_dir   "Installation prefix [$prefix]" "=DIR"
add_flag bindir    y flag_dir   "User executables [PREFIX/bin]" "=DIR"
add_flag datadir   y flag_dir   "Read-only data [PREFIX/share]" "=DIR"
add_flag dev       n flag_dev   "Settings for developers"

add_check check_cc
add_check check_cflags
add_check check_cc_depgen
add_check check_xft

parse_command_line "$@"
run_checks

var_default bindir "${prefix}/bin"
var_default datadir "${prefix}/share"

CFLAGS="${CFLAGS} ${EXTRA_CFLAGS} -DDEBUG=$DEBUG"

makefile_vars bindir datadir
generate_config_mk

cat <<EOF

Compiler Settings:
CC:                  ${CC}
LD:                  ${LD}
CFLAGS:              ${CFLAGS}
LDFLAGS:             ${LDFLAGS}

Installation Directories:
bindir:              ${bindir}
datadir:             ${datadir}
EOF
