aboutsummaryrefslogtreecommitdiffstats
path: root/shells/bash/Makefile
blob: dde03018d86d7a477ee3cf158b5bb7ba40901c5d (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
130
# Created by: Oliver Eikemeier
# $FreeBSD$

PORTNAME=       bash
PATCHLEVEL=     46
PORTVERSION=        4.3.${PATCHLEVEL:S/^0//g}
PORTREVISION?=      0
CATEGORIES=     shells
MASTER_SITES=       GNU/${PORTNAME}
DISTNAME=       ${PORTNAME}-${PORTVERSION:R}
DIST_SUBDIR=        ${PORTNAME}
EXTRACT_ONLY=       ${DISTNAME}${EXTRACT_SUFX}

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

MAINTAINER=     ehaupt@FreeBSD.org
COMMENT=        The GNU Project's Bourne Again SHell

LICENSE=        GPLv3

OPTIONS_DEFINE=     IMPLICITCD COLONBREAKSWORDS HELP NLS STATIC SYSLOG DOCS
OPTIONS_DEFINE+=    IMPORTFUNCTIONS
OPTIONS_DEFAULT=    IMPLICITCD COLONBREAKSWORDS HELP
IMPLICITCD_DESC=    Use directory name alone to cd into it
COLONBREAKSWORDS_DESC=  Colons break words
HELP_DESC=      Enable builtin help
IMPORTFUNCTIONS_DESC=   Import function from env without --import-functions

USES=           bison cpe iconv makeinfo
OPTIONS_SUB=        yes
CPE_VENDOR=     gnu

IMPLICITCD_EXTRA_PATCHES=   ${PATCHDIR}/extrapatch-implicitcd
COLONBREAKSWORDS_EXTRA_PATCHES= ${PATCHDIR}/extrapatch-colonbreakswords
# Always apply this for now. The option will modify the default.
EXTRA_PATCHES+=         ${PATCHDIR}/extrapatch-import-functions

HELP_CONFIGURE_ENABLE=  help-builtin
NLS_CONFIGURE_ENABLE=   nls
NLS_USES=       gettext

INFO=           bash

GNU_CONFIGURE=      yes

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

CONFIGURE_ARGS+=    --without-bash-malloc \
            --disable-rpath \
            --enable-disabled-builtins

CFLAGS+=        -DUSE_MKTEMP=1 -DUSE_MKSTEMP=1

.if empty(PKGNAMESUFFIX)
CONFLICTS+=     bash-static-[0-9]*
.else
CONFLICTS+=     bash-[0-9]*
.endif

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MIMPORTFUNCTIONS}
CFLAGS+=    -DIMPORT_FUNCTIONS_DEF=1
.else
CFLAGS+=    -DIMPORT_FUNCTIONS_DEF=0
.endif

.if ${PORT_OPTIONS:MSTATIC} || defined(NO_DYNAMICROOT) || (defined(NOSHARED) && ${NOSHARED:tl} != "no")
CONFIGURE_ARGS+=    --enable-static-link
.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.)
CFLAGS+=        -Wl,-export-dynamic
.endif

post-patch:
# Ensure y.tab.c is regenerated
    ${TOUCH} ${WRKSRC}/parse.y
    ${RM} ${WRKSRC}/y.tab.c
    @${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g" ${WRKSRC}/doc/bash.1
.if ${PORT_OPTIONS:MSYSLOG}
    @${REINPLACE_CMD} \
        -e "s|/\*.*#define SYSLOG_HISTORY .*\*/|#define SYSLOG_HISTORY|g" \
        ${WRKSRC}/config-top.h
.endif
.if empty(PORT_OPTIONS:MNLS)
    @${REINPLACE_CMD} -e "s|@LIBICONV@||g" ${WRKSRC}/Makefile.in
.endif

post-configure:
    @${FIND} ${WRKSRC} -name Makefile -print0 | ${XARGS} -0 \
        ${REINPLACE_CMD} -e "s|^DESTDIR *=|& ${DESTDIR}|"
.if empty(PORT_OPTIONS:MNLS)
    @${REINPLACE_CMD} -e "s|#define HAVE_ICONV 1|#undef HAVE_ICONV|g" \
        ${WRKSRC}/config.h
.endif

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 \
        ftp://ftp.cwru.edu/pub/${PORTNAME}/${PORTNAME}-${PORTVERSION:C/\.[0-9a-z]*$//}-patches/ \
        | fgrep -v .sig | ${TAIL}

.include <bsd.port.mk>