1 |
# $MidnightBSD$ |
2 |
|
3 |
PORTNAME= gdb |
4 |
PORTVERSION= 8.2 |
5 |
CATEGORIES= devel |
6 |
MASTER_SITES= GNU |
7 |
|
8 |
MAINTAINER= ports@MidnightBSD.org |
9 |
COMMENT= GNU GDB of newer version than comes with the system |
10 |
|
11 |
LICENSE= gpl3 |
12 |
LICENSE_FILE= ${WRKSRC}/COPYING3 |
13 |
|
14 |
# untested on sparc64, might work |
15 |
ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 mips powerpc powerpc64 |
16 |
|
17 |
LIB_DEPENDS= libmpfr.so:math/mpfr |
18 |
TEST_DEPENDS= runtest:misc/dejagnu |
19 |
|
20 |
TEST_TARGET= check |
21 |
# XXX: This should be compiler:c++11-lib as GDB doesn't really require |
22 |
# C++14. However, clang in 1.0 crashes while building this port. |
23 |
# Requiring C++14 forces 1.0 to use an external version of clang |
24 |
USES= compiler:c++14-lang cpe gettext-runtime gmake libtool tar:xz |
25 |
USE_CSTD= gnu89 |
26 |
CPE_VENDOR= gnu |
27 |
GNU_CONFIGURE= yes |
28 |
CONFIGURE_ENV= CONFIGURED_M4=m4 CONFIGURED_BISON=byacc |
29 |
CONFIGURE_ARGS= --program-suffix=${PORTVERSION:S/.//g} \ |
30 |
--enable-targets=all --enable-64-bit-bfd \ |
31 |
--with-gdb-datadir=${PREFIX}/share/gdb${PORTVERSION:S/.//g} \ |
32 |
--with-separate-debug-dir=/usr/lib/debug \ |
33 |
${ICONV_CONFIGURE_ARG} \ |
34 |
--with-expat=yes --with-libexpat-prefix=${LOCALBASE} \ |
35 |
--without-libunwind-ia64 --with-system-zlib |
36 |
CFLAGS:= ${CFLAGS:C/ +$//} # blanks at EOL creep in sometimes |
37 |
CFLAGS+= -DRL_NO_COMPAT -Wno-unused-function -Wno-unused-variable |
38 |
CFLAGS+= -Wno-unknown-warning-option |
39 |
EXCLUDE= dejagnu expect sim texinfo intl |
40 |
EXTRACT_AFTER_ARGS= ${EXCLUDE:S/^/--exclude /} |
41 |
EXTRA_PATCHES= ${FILESDIR}/commit-8aa0243d54 |
42 |
LIB_DEPENDS+= libexpat.so:textproc/expat2 |
43 |
|
44 |
VER= ${PORTVERSION:S/.//g} |
45 |
PLIST_SUB= VER=${VER} |
46 |
|
47 |
OPTIONS_DEFINE= DEBUG GDB_LINK GUILE KGDB PYTHON TUI |
48 |
|
49 |
OPTIONS_DEFAULT= GDB_LINK KGDB PYTHON TUI PORT_READLINE PORT_ICONV SYSTEM_ZLIB |
50 |
|
51 |
OPTIONS_SINGLE= READLINE ICONV ZLIB |
52 |
OPTIONS_SINGLE_READLINE= BUNDLED_READLINE PORT_READLINE |
53 |
OPTIONS_SINGLE_ICONV= PORT_ICONV SYSTEM_ICONV |
54 |
OPTIONS_SINGLE_ZLIB= BUNDLED_ZLIB SYSTEM_ZLIB |
55 |
|
56 |
GDB_LINK_DESC= Create ${PREFIX}/bin/gdb symlink |
57 |
KGDB_DESC= Kernel Debugging Support |
58 |
BUNDLED_READLINE_DESC= from gdb distfile |
59 |
BUNDLED_ZLIB_DESC= from gdb distfile |
60 |
PORT_READLINE_DESC= from devel/readline port |
61 |
PORT_ICONV_DESC= use libiconv, with wider charset support |
62 |
SYSTEM_ICONV_DESC= use libc iconv, with no wchar support |
63 |
SYSTEM_ZLIB_DESC= use system zlib |
64 |
TUI_DESC= Text User Interface enabled |
65 |
|
66 |
OPTIONS_SUB= yes |
67 |
|
68 |
BUNDLED_READLINE_CONFIGURE_OFF= --with-system-readline |
69 |
DEBUG_CFLAGS= -g |
70 |
GUILE_CONFIGURE_WITH= guile |
71 |
GUILE_USES= pkgconfig |
72 |
GUILE_LIB_DEPENDS= libguile-2.0.so:lang/guile2 |
73 |
PORT_READLINE_USES= readline:port |
74 |
PORT_ICONV_USES= iconv:wchar_t |
75 |
PYTHON_CONFIGURE_ON= --with-python=${PYTHON_CMD} |
76 |
PYTHON_CONFIGURE_OFF= --without-python |
77 |
PYTHON_USES= python |
78 |
SYSTEM_ICONV_USES= iconv |
79 |
SYSTEM_ZLIB_WITH= system-zlib |
80 |
TUI_CONFIGURE_ENABLE= tui |
81 |
|
82 |
.include <bsd.port.pre.mk> |
83 |
|
84 |
.if ! ${PORT_OPTIONS:MBUNDLED_READLINE} |
85 |
EXCLUDE+= readline |
86 |
.endif |
87 |
|
88 |
.if ! ${PORT_OPTIONS:MBUNDLED_ZLIB} |
89 |
EXCLUDE+= zlib |
90 |
.endif |
91 |
|
92 |
.if ${ARCH} == "amd64" |
93 |
CONFIGURE_TARGET= x86_64-portbld-freebsd10.4 |
94 |
.endif |
95 |
|
96 |
.if ${COMPILER_TYPE} == "clang" |
97 |
CFLAGS+= -Wno-extended-offsetof |
98 |
.endif |
99 |
|
100 |
post-patch: |
101 |
@${REINPLACE_CMD} -e 's|$$| [GDB v${PORTVERSION} for MidnightBSD]|' \ |
102 |
${WRKSRC}/gdb/version.in |
103 |
|
104 |
post-patch-KGDB-on: |
105 |
@${CP} -r ${FILESDIR}/kgdb/*.[ch] ${WRKSRC}/gdb/ |
106 |
@${PATCH} -d ${PATCH_WRKSRC} ${PATCH_ARGS} < ${FILESDIR}/extrapatch-kgdb |
107 |
|
108 |
do-install: |
109 |
${INSTALL_PROGRAM} ${WRKSRC}/gdb/gdb \ |
110 |
${STAGEDIR}${PREFIX}/bin/gdb${VER} |
111 |
${INSTALL_MAN} ${WRKSRC}/gdb/doc/gdb.1 \ |
112 |
${STAGEDIR}${MAN1PREFIX}/man/man1/gdb${VER}.1 |
113 |
(cd ${WRKSRC}/gdb/data-directory ; \ |
114 |
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${FAKE_MAKEARGS} install-syscalls ) |
115 |
|
116 |
do-install-KGDB-on: |
117 |
${INSTALL_PROGRAM} ${WRKSRC}/gdb/kgdb \ |
118 |
${FAKE_DESTDIR}${PREFIX}/bin/kgdb${VER} |
119 |
${INSTALL_MAN} ${FILESDIR}/kgdb/kgdb.1 \ |
120 |
${FAKE_DESTDIR}${MAN1PREFIX}/man/man1/kgdb${VER}.1 |
121 |
|
122 |
do-install-TUI-on: |
123 |
${LN} -sf gdb${VER} ${FAKE_DESTDIR}${PREFIX}/bin/gdbtui${VER} |
124 |
|
125 |
do-install-GDB_LINK-on: |
126 |
${LN} -sf gdb${VER} ${FAKE_DESTDIR}${PREFIX}/bin/gdb |
127 |
.if ${PORT_OPTIONS:MKGDB} |
128 |
${LN} -sf kgdb${VER} ${FAKE_DESTDIR}${PREFIX}/bin/kgdb |
129 |
.endif |
130 |
|
131 |
do-install-PYTHON-on: |
132 |
(cd ${WRKSRC}/gdb; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${FAKE_MAKEARGS} install-python ) |
133 |
(cd ${WRKSRC}/gdb/data-directory ; \ |
134 |
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${FAKE_MAKEARGS} install-python ) |
135 |
. for f in gdb gdb/command gdb/function gdb/printer |
136 |
@(cd ${STAGEDIR}${PREFIX}/share/gdb${VER}/python/${f} ; ${CHMOD} 644 *.py* ) |
137 |
. endfor |
138 |
|
139 |
do-install-GUILE-on: |
140 |
(cd ${WRKSRC}/gdb; ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${FAKE_MAKEARGS} install-guile ) |
141 |
(cd ${WRKSRC}/gdb/data-directory ; \ |
142 |
${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} ${FAKE_MAKEARGS} install-guile ) |
143 |
|
144 |
.include <bsd.port.post.mk> |