aboutsummaryrefslogtreecommitdiff
path: root/shells/bash/Makefile
blob: 01ccee28b7707c91ff67cc0e223c8d701944b42b (plain) (blame)
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
PORTNAME=		bash
PATCHLEVEL=		26
PORTVERSION=		5.2.${PATCHLEVEL:S/^0//g}
PORTREVISION=		1
CATEGORIES=		shells
MASTER_SITES=		GNU
DISTNAME=		${PORTNAME}-${PORTVERSION:R}
DIST_SUBDIR=		${PORTNAME}
EXTRACT_ONLY=		${DISTNAME}${EXTRACT_SUFX}

PATCH_SITES=		GNU/${PORTNAME}/${DISTNAME}-patches/
PATCHFILES!=		/usr/bin/jot -s " " -w \
			${PORTNAME}${PORTVERSION:R:S/.//g}-%03d \
			${PATCHLEVEL} 1 ${PATCHLEVEL}

MAINTAINER=		ehaupt@FreeBSD.org
COMMENT=		GNU Project's Bourne Again SHell
WWW=			https://www.gnu.org/software/bash/

LICENSE=		GPLv3+
LICENSE_FILE=		${WRKSRC}/COPYING

USES=			bison cpe iconv localbase pathfix
CPE_VENDOR=		gnu
GNU_CONFIGURE=		yes
CONFIGURE_ARGS+=	--without-bash-malloc \
			--disable-rpath \
			--enable-disabled-builtins \
			--with-libiconv-prefix=${ICONV_PREFIX}

MAKE_ARGS+=		TERMCAP_LIB=-ltinfow

INFO=			bash
PORTDOCS=		FAQ INTRO CHANGES COMPAT NEWS POSIX RBASH README \
			bash.html bashref.html

OPTIONS_DEFINE=		FDESCFS PORTS_READLINE HELP NLS STATIC SYSBASHRC \
			SYSLOG DOCS
OPTIONS_DEFAULT=	HELP PORTS_READLINE
OPTIONS_SUB=		yes

FDESCFS_DESC=		Enable use of /dev/fd
HELP_DESC=		Enable builtin help
PORTS_READLINE_DESC=	libreadline from ports instead of bundled one
SYSBASHRC_DESC=		Enable system-wide rc files

FDESCFS_CONFIGURE_ENV_OFF=	bash_cv_dev_fd=absent
FDESCFS_SUB_FILES=	pkg-message

HELP_CONFIGURE_ENABLE=	help-builtin
NLS_USES=		gettext
NLS_CONFIGURE_ENABLE=	nls

PORTS_READLINE_BUILD_DEPENDS=	readline>=8.2:devel/readline
PORTS_READLINE_USES=	readline
PORTS_READLINE_CONFIGURE_WITH=	installed-readline

.if empty(PKGNAMESUFFIX)
CONFLICTS+=	bash-static bash52-static
.else
CONFLICTS+=	bash bash52
.endif
CONFLICTS+=	bashc

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MSTATIC} || defined(NO_DYNAMICROOT) || (defined(NOSHARED) && ${NOSHARED:tl} != "no")
CONFIGURE_ARGS+=	--enable-static-link
LLD_UNSAFE=		yes
.else
CONFIGURE_ARGS+=	--disable-static-link
# Bash symbols must be exported in order to link runtime plugins, i.e.,
# "enable -f". (Plugins are not supported for bash-static.)
LDFLAGS+=		-Wl,-export-dynamic
.endif
STANDARD_PATH=		/sbin:/bin:/usr/sbin:/usr/bin
CPPFLAGS+=		-DDEFAULT_PATH_VALUE='\"${STANDARD_PATH}:${LOCALBASE}/sbin:${LOCALBASE}/bin\"' \
			-DSTANDARD_UTILS_PATH='\"${STANDARD_PATH}\"'

post-patch:
# Ensure y.tab.c is regenerated
	${TOUCH} ${WRKSRC}/parse.y
	${RM} ${WRKSRC}/y.tab.c
	@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" -e "s|%%LOCALBASE%%|${LOCALBASE}|g" \
		${WRKSRC}/doc/bash.1
.if ${PORT_OPTIONS:MSYSLOG}
	@${REINPLACE_CMD} \
	    -e "s|/\*.*#define SYSLOG_HISTORY .*\*/|#define SYSLOG_HISTORY|g" \
	    -e "s|/\*.*#define SYSLOG_SHOPT .*\*/|#define SYSLOG_SHOPT 1|g" \
	    ${WRKSRC}/config-top.h
.endif
	@${REINPLACE_CMD} -e "s|\(/etc/profile\)|${LOCALBASE}\1|" \
		${WRKSRC}/pathnames.h.in
	@${REINPLACE_CMD} -e "s|/etc/[iI]nputrc|${LOCALBASE}/etc/inputrc|g" \
		${WRKSRC}/doc/*.info ${WRKSRC}/doc/*.html ${WRKSRC}/doc/*.1 \
		${WRKSRC}/lib/readline/rlconf.h

post-patch-SYSBASHRC-on:
	@${REINPLACE_CMD} \
		-e "s|.*\(#define SYS_BASH.*\)\(/etc/.*\"\).*|\1${PREFIX}\2|" \
		${WRKSRC}/config-top.h

pre-build:
	@${ECHO_CMD} $$((${PORTREVISION}-1)) > ${WRKSRC}/.build

post-install:
	${LN} -sf bash ${STAGEDIR}${PREFIX}/bin/rbash
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	${INSTALL_DATA} ${WRKSRC}/doc/FAQ \
		${WRKSRC}/doc/INTRO ${STAGEDIR}${DOCSDIR}
	for d in ${PORTDOCS:NFAQ:NINTRO:N*html}; do \
		${INSTALL_DATA} ${WRKSRC}/$${d} ${STAGEDIR}${DOCSDIR}; \
	done

regress: build
	cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_ARGS} test

ckp:
	${MAKE} -DPATCH_DEBUG clean patch

# requires ftp/ncftp3
cklatest:
	@${ECHO} -n "Currently at: "
	@${MAKE} -V PATCHLEVEL
	-ncftpls \
		${PATCH_SITES:Mftp*:Ox:[1]} \
		| fgrep -v .sig | ${SORT} | ${TAIL}

.include <bsd.port.mk>
OSZAR »