# # Copyright (C) 2007-2008 OpenWrt.org # Copyright (c) 2009 Thorsten Glaser # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=mksh PKG_VERSION:=39 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-R$(PKG_VERSION).cpio.gz PKG_SOURCE_URL:=http://www.mirbsd.org/MirOS/dist/mir/mksh PKG_MD5SUM:=b2eeb4fe4ccac2704e1440e53cd2672c PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) include $(INCLUDE_DIR)/package.mk define Package/mksh SECTION:=shells CATEGORY:=Base system TITLE:=MirBSD Korn Shell DEPENDS:=$(DEP) URL:=http://mirbsd.de/mksh endef define Package/mksh/description mksh is the MirBSD enhanced version of the Public Domain Korn shell (pdksh), a Bourne-compatible shell which is largely si- milar to the original AT&T Korn shell; mksh is the only pdksh derivate currently being actively developed. It includes bug fixes and feature improvements, in order to produce a modern, robust shell good for interactive and especially script use. mksh has UTF-8 support (e.g. in the emacs editing mode); R38c corresponds to OpenBSD 4.5-current ksh (without GNU bash-like $PS1 and fancy character classes). The code has throughoutly been cleaned up and simplified, bugs fixed, standards compli- ance added, and several enhancements (for extended compatibi- lity to other modern shells - as well as a couple of its own) have been placed. endef define Build/Compile # -DMKSH_SMALL=1 ⇒ reduce functionality quite a lot # -DMKSH_ASSUME_UTF8=0 ⇒ never automatically enable # UTF-8 mode, neither use setlocale/nl_langinfo # nor look at $LC_* and $LANG (not recommended) # HAVE_CAN_FSTACKPROTECTORALL=0 ⇒ nuke libssp dependency # HAVE_REALPATH=x ⇒ add the realpath builtin, which was # disabled by MKSH_SMALL, back if realpath() exists cd $(PKG_BUILD_DIR); \ CC="$(TARGET_CC)" \ TARGET_OS="$(shell uname -s)" \ CFLAGS="$(TARGET_CFLAGS)" \ CPPFLAGS="-DMKSH_SMALL=1 -DMKSH_ASSUME_UTF8=0" \ HAVE_CAN_FSTACKPROTECTORALL=0 \ HAVE_REALPATH=x \ LDFLAGS="$(TARGET_LDFLAGS)" \ $(BASH) Build.sh -Q -r endef define Package/mksh/postinst #!/bin/sh grep mksh $${IPKG_INSTROOT}/etc/shells || \ echo "/bin/mksh" >> $${IPKG_INSTROOT}/etc/shells endef define Package/mksh/install $(INSTALL_DIR) $(1)/etc $(INSTALL_DATA) $(PKG_BUILD_DIR)/dot.mkshrc $(1)/etc/mkshrc $(INSTALL_DIR) $(1)/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/mksh $(1)/bin/ endef $(eval $(call BuildPackage,mksh))