aboutsummaryrefslogtreecommitdiffstats
path: root/devel/gdb/Makefile
blob: 9abc999612b24ba2f3ca0c0d44215a90bc6716fc (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
# Created by: Steven Kreuzer <skreuzer@FreeBSD.org>
# $FreeBSD$

PORTNAME=   gdb
PORTVERSION=    7.11
#PORTREVISION=
CATEGORIES= devel
MASTER_SITES=   GNU

MAINTAINER= luca.pizzamiglio@gmail.com
COMMENT=    GNU GDB of newer version than comes with the system

LICENSE=    GPLv3

TEST_DEPENDS=   runtest:${PORTSDIR}/misc/dejagnu

TEST_TARGET=    check
USES=       cpe iconv gmake libtool tar:xz
USE_CSTD=   gnu89
CPE_VENDOR= gnu
GNU_CONFIGURE=  yes
CONFIGURE_ENV=  CONFIGURED_M4=m4 CONFIGURED_BISON=byacc
CONFIGURE_ARGS= --program-suffix=${PORTVERSION:S/.//g} \
        --enable-targets=all --enable-64-bit-bfd \
        --with-gdb-datadir=${PREFIX}/share/gdb${PORTVERSION:S/.//g} \
        --with-separate-debug-dir=/usr/lib/debug \
        ${ICONV_CONFIGURE_ARG} \
        --without-libunwind-ia64
CFLAGS:=    ${CFLAGS:C/ +$//}   # blanks at EOL creep in sometimes
CFLAGS+=    -DRL_NO_COMPAT -Wno-unused-function -Wno-unused-variable
EXCLUDE=    dejagnu expect sim texinfo intl
EXTRACT_AFTER_ARGS= ${EXCLUDE:S/^/--exclude /}

VER=        ${PORTVERSION:S/.//g}
PLIST_SUB=  VER=${VER}

ONLY_FOR_ARCHS= i386 amd64 powerpc powerpc64 armv6  # untested elsewhere, might work

OPTIONS_DEFINE= DEBUG EXPAT GDB_LINK GUILE KGDB PYTHON TUI

OPTIONS_DEFAULT=    GDB_LINK KGDB TUI PORT_READLINE

OPTIONS_SINGLE= READLINE
OPTIONS_SINGLE_READLINE=    BASE_READLINE BUNDLED_READLINE PORT_READLINE

GDB_LINK_DESC=      Create ${PREFIX}/bin/gdb symlink
KGDB_DESC=      Kernel Debugging Support
BASE_READLINE_DESC= from base system (experimental)
BUNDLED_READLINE_DESC=  from gdb distfile
PORT_READLINE_DESC= from devel/readline port
TUI_DESC=       Text User Interface enabled

OPTIONS_SUB=    yes

BASE_READLINE_USES= readline
BASE_READLINE_CFLAGS=   -D_rl_echoing_p=readline_echoing_p
BUNDLED_READLINE_CONFIGURE_OFF= --with-system-readline
DEBUG_CFLAGS=       -g
EXPAT_CONFIGURE_WITH=   expat
EXPAT_LIB_DEPENDS=  libexpat.so:${PORTSDIR}/textproc/expat2
GUILE_CONFIGURE_WITH=   guile
GUILE_USES=     pkgconfig
GUILE_LIB_DEPENDS=  libguile-2.0.so:${PORTSDIR}/lang/guile2
PORT_READLINE_USES= readline:port
PYTHON_CONFIGURE_ON=    --with-python=${PYTHON_CMD}
PYTHON_CONFIGURE_OFF=   --without-python
PYTHON_USES=        python:2
TUI_CONFIGURE_ENABLE=   tui

.include <bsd.port.options.mk>

.if ! ${PORT_OPTIONS:MBUNDLED_READLINE}
EXCLUDE+=   readline
.endif

.if ${ARCH} == "amd64"
CONFIGURE_TARGET=   x86_64-portbld-freebsd${OSREL}
.endif

post-patch:
    @${REINPLACE_CMD} -e 's|$$| [GDB v${PORTVERSION} for FreeBSD]|' \
        ${WRKSRC}/gdb/version.in

post-patch-KGDB-on:
    @${CP} -r ${FILESDIR}/kgdb/*.[ch] ${WRKSRC}/gdb/
    @${PATCH} ${PATCH_ARGS} < ${FILESDIR}/extrapatch-kgdb

do-install:
    ${INSTALL_PROGRAM} ${WRKSRC}/gdb/gdb \
        ${STAGEDIR}${PREFIX}/bin/gdb${VER}
    ${INSTALL_MAN} ${WRKSRC}/gdb/doc/gdb.1 \
        ${STAGEDIR}${MAN1PREFIX}/man/man1/gdb${VER}.1

do-install-KGDB-on:
    ${INSTALL_PROGRAM} ${WRKSRC}/gdb/kgdb \
        ${STAGEDIR}${PREFIX}/bin/kgdb${VER}

do-install-TUI-on:
    ${LN} -sf gdb${VER} ${STAGEDIR}${PREFIX}/bin/gdbtui${VER}

do-install-GDB_LINK-on:
    ${LN} -sf gdb${VER} ${STAGEDIR}${PREFIX}/bin/gdb
.if ${PORT_OPTIONS:MKGDB}
    ${LN} -sf kgdb${VER} ${STAGEDIR}${PREFIX}/bin/kgdb
.endif

do-install-PYTHON-on:
    (cd ${WRKSRC}/gdb; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-python )
    (cd ${WRKSRC}/gdb/data-directory ; \
        ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-python )
. for f in gdb gdb/command gdb/function gdb/printer
    @(cd ${STAGEDIR}${PREFIX}/share/gdb${VER}/python/${f} ; ${CHMOD} 644 *.py* )
. endfor

do-install-GUILE-on:
    (cd ${WRKSRC}/gdb; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-guile )
    (cd ${WRKSRC}/gdb/data-directory ; \
        ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} install-guile )

.include <bsd.port.mk>