Patches = \
	src__cmd__ksh93__sh.1.diff \
	src__lib__libast__features__lib.diff \
	src__lib__libast__features__common.diff \
	src__cmd__ksh93__jobs.c.diff \
	src__cmd__ksh93__parse.c.diff \
	src__cmd__ksh93__sh__array.c.diff \
	src__lib__libast__sfio__sfvprintf.c.diff \
	ksh-20120801-subshell-leak.patch \
	src__cmd__INIT__cc.darwin.i386.diff \
	src__lib__libast__comp__omitted.c.diff

#find ksh overrides before libSystem
EXTRA_LDFLAGS = -Wl,-search_paths_first

src::
	git clone https://github.com/ksh-community/ksh.git
	curl -O http://iks.cs.ovgu.de/~elkner/tmp/ksh93/apfel/patches.tar.gz
	gunzip -c patches.tar.gz | tar xvf -
	for mod in cmd/ksh93 lib/libast lib/libcmd lib/libdll lib/libcoshell; do \
		ed - ksh/src/$$mod/Mamfile < patches/add_ARCH_CCFLAGS.ed; \
	done
	for p in $(Patches); do \
		patch -d ksh -p0 -b < patches/$$p || exit 1; \
	done

PASS_CCFLAGS = -DSHOPT_SPAWN=0 -D_ast_int8_t=int64_t -D_lib_memccpy
ARCH_CCFLAGS = $(CC_Archs)
#CC_Debug = -g
#CC_Optimize = -O

bin::
	cd ksh && \
	LDFLAGS="$(EXTRA_LDFLAGS)" CCFLAGS="$(PASS_CCFLAGS) $(EXTRA_CCFLAGS)" \
	ARCH_CCFLAGS="$(ARCH_CCFLAGS) $(CC_Debug) $(CC_Optimize)" \
	./bin/package make SHELL=/bin/bash
	cd ksh && ./bin/package results failed

clean::
	cd ksh && ./bin/package clean ast-ksh INIT
