summaryrefslogtreecommitdiff
path: root/shells/ast-ksh/Makefile.common
blob: d892a86a10c3e6da908742fa5c3ec29e60330af9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# $NetBSD: Makefile.common,v 1.34 2016/03/22 19:31:15 richard Exp $
#
# used by shells/ast-ksh/Makefile
# used by shells/static-ast-ksh/Makefile

DISTNAME=	ast-ksh-${ASTKSH_VERSION}
PKGNAME=	ast-ksh-${ASTKSH_VERSION:S/-//g}
CATEGORIES=	shells
# originally at http://www2.research.att.com/~gsf/download/tgz/
# but it requires authentication
MASTER_SITES=	${MASTER_SITE_LOCAL}
DISTFILES=	INIT.${ASTKSH_VERSION}.tgz ast-ksh.${ASTKSH_VERSION}.tgz

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	http://www.kornshell.com/
COMMENT=	Official AT&T release of KornShell 93
LICENSE=	epl-v1.0

NOT_FOR_PLATFORM=	Interix-*-* # taking nearly a day to build and crash!

CONFLICTS=	static-ast-ksh-[0-9]*
KSH93_MAKEFLAGS=

ASTKSH_VERSION=	2012-08-01

WRKSRC=		${WRKDIR}
MAKE_FLAGS+=	CC=${CC:Q} CCFLAGS=${CFLAGS:M*:Q}

.include "../../mk/bsd.prefs.mk"

.if ${OPSYS} == "NetBSD"
PDKSH=		/bin/ksh
.endif

# Link with libm to fix sfcvt link error -
# this is kind of a hack -
# better would be to fix the 'meta makefile' to pass this
# or to use the ksh-provided math routines.

.if ${OPSYS} == "DragonFly"
KSH93_MAKEFLAGS+=	CCFLAGS=-lm
.endif

.if ${OPSYS} == "SunOS"
# need c99 and _XPG6 in order to avoid patching libast/features/standards
# __EXTENSIONS__ is needed in case of __STDC__ == 1 (i.e. -std=c99 not gnu99)
# for things like mamake, ratz and some others for now.
USE_LANGUAGES+=	c99
KSH93_MAKEFLAGS+=	LDFLAGS=-lm CCFLAGS="-D_XPG6 -D__EXTENSIONS__"
.endif

PKG_SHELL=	bin/ksh93

INSTALLATION_DIRS=	bin ${PKGMANDIR}/man1

# ${KSH93_MAKEFLAGS} is set as "LDFLAGS=-static" only when built as a
# static binary.
#
# XXX Note that 'make' here is not an executable command name, but a target
# name which the ./bin/package script uses.
do-build:
	@cd ${WRKSRC:Q} && \
		${SETENV} SHELL=${PDKSH:Q} \
			${PDKSH:Q} ./bin/package make ${KSH93_MAKEFLAGS}

do-install:
	@set -e;							\
	arch=`${WRKSRC}/bin/package host`;				\
	${INSTALL_PROGRAM} ${WRKSRC}/arch/"$${arch}"/bin/ksh		\
		${DESTDIR}${PREFIX}/bin/ksh93;				\
	${INSTALL_MAN} ${WRKSRC}/arch/"$${arch}"/man/man1/sh.1	\
		${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/ksh93.1

# Part of regression test
do-test:
	@set -e;							\
	arch=`${WRKSRC}/bin/package host`;				\
	cd ${WRKSRC:Q}/src/cmd/ksh93/tests && 				\
		${SETENV} SHELL=${WRKSRC}/arch/"$${arch}"/bin/ksh	\
			${WRKSRC}/arch/"$${arch}"/bin/ksh shtests
# XXX Their 'test' target needs nmake (Korn's another tool)
#	@cd ${WRKSRC}; \
#		${SETENV} SHELL=${PDKSH} ${PDKSH} ./bin/package test