1##
2# Makefile for zsh
3##
4
5# Project info
6Project		      = zsh
7ProjectVersion	      = 5.0.5
8UserType	      = Administration
9ToolType	      = Commands
10Extra_CC_Flags	      = -no-cpp-precomp
11Extra_Configure_Flags = --bindir="$(BINDIR)" --with-tcsetpgrp --enable-multibyte \
12                        --enable-max-function-depth=700
13Extra_Install_Flags   = bindir="$(DSTROOT)$(BINDIR)"
14GnuAfterInstall	      = post-install install-plist strip-binaries
15
16Patches = utmpx_ut_user.patch no_strip.patch arg_zero.patch \
17          zsh-Doc.patch svn-zsh-complete.patch no_auto.patch
18
19# It's a GNU Source project
20include $(MAKEFILEPATH)/CoreOS/ReleaseControl/GNUSource.make
21
22# hack to resurrect zshall
23COMPRESSMANPAGES = true
24
25post-install:
26	rm -f $(DSTROOT)/bin/zsh-$(ProjectVersion)
27	rm $(DSTROOT)/usr/share/zsh/$(ProjectVersion)/scripts/newuser
28	mkdir -p $(DSTROOT)/private/etc
29	install -m 0444 -o root -g wheel zshenv $(DSTROOT)/private/etc
30
31ZSH_MODULE_DIR = /usr/lib/zsh/$(ProjectVersion)/zsh
32
33strip-binaries:
34	$(MKDIR) $(SYMROOT)/bin $(SYMROOT)$(ZSH_MODULE_DIR) $(SYMROOT)$(ZSH_MODULE_DIR)/net
35	$(CP) $(DSTROOT)/bin/zsh $(SYMROOT)/bin
36	$(STRIP) -x $(DSTROOT)/bin/zsh
37	$(DSYMUTIL) $(SYMROOT)/bin/zsh
38	$(MKDIR) $(SYMROOT)$(ZSH_MODULE_DIR)
39	$(CP) $(DSTROOT)$(ZSH_MODULE_DIR)/*.so $(SYMROOT)$(ZSH_MODULE_DIR)
40	$(STRIP) -x $(DSTROOT)$(ZSH_MODULE_DIR)/*.so
41	$(DSYMUTIL) $(SYMROOT)$(ZSH_MODULE_DIR)/*.so
42	$(MKDIR) $(SYMROOT)$(ZSH_MODULE_DIR)/net
43	$(CP) $(DSTROOT)$(ZSH_MODULE_DIR)/net/*.so $(SYMROOT)$(ZSH_MODULE_DIR)/net
44	$(STRIP) -x $(DSTROOT)$(ZSH_MODULE_DIR)/net/*.so
45	$(DSYMUTIL) $(SYMROOT)$(ZSH_MODULE_DIR)/net/*.so
46
47install_source::
48	$(RMDIR) $(SRCROOT)/$(Project)-$(ProjectVersion) $(SRCROOT)/$(Project)
49	$(TAR) -C $(SRCROOT) -xf $(SRCROOT)/$(Project)-$(ProjectVersion).tar.bz2
50	$(MV) $(SRCROOT)/$(Project)-$(ProjectVersion) $(SRCROOT)/$(Project)
51	@set -x && \
52	cd $(SRCROOT)/$(Project) && \
53	for patchfile in $(Patches); do \
54	    patch -p0 -F0 -i $(SRCROOT)/patches/$$patchfile || exit 1; \
55	done
56
57OSV	= $(DSTROOT)/usr/local/OpenSourceVersions
58OSL	= $(DSTROOT)/usr/local/OpenSourceLicenses
59
60install-plist:
61	$(MKDIR) $(OSV)
62	$(INSTALL_FILE) $(SRCROOT)/$(Project).plist $(OSV)/$(Project).plist
63	$(MKDIR) $(OSL)
64	$(INSTALL_FILE) $(Sources)/LICENCE $(OSL)/$(Project).txt
65
66##---------------------------------------------------------------------
67# Patch config.h just after running configure
68#
69# RLIMIT_RSS is now the save value as the new RLIMIT_AS, which causes
70# a duplicate case value.  So we undefine HAVE_RLIMIT_RSS.
71##---------------------------------------------------------------------
72ConfigStamp2 = $(ConfigStamp)2
73
74configure:: $(ConfigStamp2)
75
76$(ConfigStamp2): $(ConfigStamp)
77	$(_v) ed - ${BuildDirectory}/config.h < $(SRCROOT)/patches/config.h.ed
78	$(_v) $(TOUCH) $(ConfigStamp2)
79