# Template file for 'ksh'
pkgname=ksh
version=2012.08.01
revision=6
_debpkgver=93u+20120801
wrksrc=${pkgname}-${_debpkgver}
register_shell="/bin/ksh"
short_desc="AT&T's Korn shell (ksh93)"
maintainer="Christian Neukirchen <chneukirchen@gmail.com>"
license="custom"
homepage="http://www.kornshell.com/"
distfiles="${DEBIAN_SITE}/main/k/ksh/ksh_${_debpkgver}.orig.tar.gz"
checksum=052d598df7ed3cbd0fdf458b796262b0b59f4cd3305d970be1cc2287408dbfc9
nocross=yes

alternatives="
 ksh:ksh:/usr/bin/ksh93
 ksh:ksh.1:/usr/share/man/man1/ksh93.1
"

build_options="static"

case "$XBPS_TARGET_MACHINE" in
*-musl)
CFLAGS='-D_GNU_SOURCE'
post_extract() {
	# Don't rewrite xxx64 to xxx.
	sed -i '/define.*off_t/d' src/lib/libast/include/ast_std.h
	sed -i '/off_t/d' src/lib/libast/features/fs
	sed -i '/define statvfs/d' src/lib/libast/features/fs
	sed -i '/define.*64/d' src/cmd/ksh93/include/shell.h
	sed -i '/ifdef RLIM64_INFINITY/,/endif/d' src/cmd/ksh93/features/rlimits

	# Don't let <stdio.h> define FILE.
	sed -i '/include.*_nxt_wchar/i#define __DEFINED_FILE' \
		src/lib/libast/features/wchar
	sed -i '/define FILE/a#define __DEFINED_FILE' src/lib/libast/include/ast.h

	# Redefine iswalpha.
	sed -i 's/#define iswalpha(w)\(.*\)/static __inline__ int isalphaw(wint_t w) { return \1; }/' src/lib/libast/features/wctype
}
esac

do_build() {
	if [ "$build_option_static" ]; then
		LDFLAGS+=" -static"
	fi
	export SHELL=/bin/sh    # bin/package breaks on bash
	$SHELL bin/package make \
		CC="${CC}" LDFLAGS="${LDFLAGS}" \
		CFLAGS="${CFLAGS}" CCFLAGS="${CFLAGS}" \
		HOSTTYPE="$($SHELL bin/package host canon $XBPS_CROSS_TRIPLET)"
}

do_install() {
	cd arch/*/
	vbin bin/ksh ksh93
	vbin bin/shcomp
	vmkdir usr/share/ksh
	vcopy fun usr/share/ksh/functions
	vman man/man1/sh.1 ksh93.1
	vlicense ${FILESDIR}/LICENSE
}
