1##
2# Makefile for ksh
3##
4
5Project = ksh
6
7include $(MAKEFILEPATH)/CoreOS/ReleaseControl/Common.make
8
9Version = 2011-02-08
10Sources = $(SRCROOT)/$(Project)
11Patches=src__cmd__ksh93__sh.1.diff \
12	src__lib__libast__features__lib.diff \
13	src__cmd__ksh93__jobs.c.diff \
14	src__lib__libast__features__common.diff
15
16#find ksh overrides before libSystem
17EXTRA_LDFLAGS = -Wl,-search_paths_first
18
19install_source::
20	$(MKDIR) $(Sources)
21	$(TAR) -C $(Sources) -zxf $(SRCROOT)/INIT.$(Version).tgz
22	$(TAR) -C $(Sources) -zxf $(SRCROOT)/ast-ksh.$(Version).tgz
23	for project in cmd/ksh93 lib/libast lib/libcmd lib/libdll lib/libcoshell; do \
24		ed - $(Sources)/src/$$project/Mamfile < $(SRCROOT)/patches/add_ARCH_CCFLAGS.ed; \
25	done
26	for p in $(Patches); do \
27		patch -d $(Sources) -p0 -b < $(SRCROOT)/patches/$$p || exit 1; \
28	done
29
30PASS_CCFLAGS = $(CC_Debug) $(CC_Optimize) $(CC_Other) -DSHOPT_SPAWN=0 -D_ast_int8_t=int64_t -D_lib_memccpy
31ARCH_CCFLAGS = $(CC_Archs)
32
33build:: shadow_source
34	cd $(BuildDirectory) && LDFLAGS="$(EXTRA_LDFLAGS)" CCFLAGS="$(PASS_CCFLAGS) $(EXTRA_CCFLAGS)" ARCH_CCFLAGS="$(ARCH_CCFLAGS)" ./bin/package DEBUG make SHELL=$(SHELL)
35	@grep -q '*** exit code' $(OBJROOT)/arch/darwin.*/lib/package/gen/make.out && exit 1 || exit 0
36
37KSH_ARCH = $(shell $(BuildDirectory)/bin/package)
38OSV      = $(DSTROOT)/usr/local/OpenSourceVersions
39OSL      = $(DSTROOT)/usr/local/OpenSourceLicenses
40
41install::
42	$(CP) $(BuildDirectory)/arch/$(KSH_ARCH)/bin/ksh $(SYMROOT)/ksh
43	dsymutil $(SYMROOT)/ksh
44	$(MKDIR) $(DSTROOT)/bin
45	$(INSTALL_PROGRAM) $(BuildDirectory)/arch/$(KSH_ARCH)/bin/ksh \
46		$(DSTROOT)/bin/ksh
47	$(MKDIR) $(DSTROOT)/usr/share/man/man1
48	$(INSTALL_FILE) $(BuildDirectory)/arch/$(KSH_ARCH)/man/man1/sh.1 \
49		$(DSTROOT)/usr/share/man/man1/ksh.1
50	$(MKDIR) $(OSV)
51	$(INSTALL_FILE) $(SRCROOT)/$(Project).plist $(OSV)/$(Project).plist
52	$(MKDIR) $(OSL)
53	$(INSTALL_FILE) $(Sources)/lib/package/LICENSES/ast $(OSL)/$(Project).txt
54