blob: 81c1cfeeb3c4d2efecdc4446523ab6af0b5839f0 (
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql++/mysql++-1.7.9-r4.ebuild,v 1.4 2004/06/29 16:35:24 agriffis Exp $
inherit gcc eutils gnuconfig
DESCRIPTION="C++ API interface to the MySQL database"
# This is the download page but includes links to other places
HOMEPAGE="http://www.mysql.org/downloads/api-mysql++.html"
SRC_URI_BASE="mirror://mysql/Downloads/${PN}"
SRC_URI="
${SRC_URI_BASE}/${P}.tar.gz
${SRC_URI_BASE}/${PN}-gcc-3.0.patch.gz
${SRC_URI_BASE}/${PN}-gcc-3.2.patch.gz
${SRC_URI_BASE}/${PN}-gcc-3.2.2.patch.gz
${SRC_URI_BASE}/patch_gcc_3.3.gz
${SRC_URI_BASE}/mysqlplus-gcc-3.4.patch.gz
"
LICENSE="LGPL-2"
SLOT="0"
KEYWORDS="~x86 alpha ~hppa ~mips ~sparc ~ppc ~amd64"
IUSE=""
DEPEND=">=dev-db/mysql-3.23.49"
src_unpack() {
unpack ${P}.tar.gz
EPATCH_OPTS="-p1 -d ${S}"
if [ `gcc-major-version` -eq 3 ] ; then
if [ `gcc-minor-version` -ne 3 ] ; then
EPATCH_SINGLE_MSG="Patching for gcc 3.0..." \
epatch ${DISTDIR}/mysql++-gcc-3.0.patch.gz
if [ `gcc-minor-version` -eq 2 ] ; then
EPATCH_SINGLE_MSG="Patching for gcc 3.2..." \
epatch ${DISTDIR}/mysql++-gcc-3.2.patch.gz
if [ `gcc-micro-version` -ge 2 ] ; then
EPATCH_SINGLE_MSG="Patching for gcc >=3.2.2..." \
epatch ${DISTDIR}/mysql++-gcc-3.2.2.patch.gz
fi
elif [ `gcc-minor-version` -eq 4 ] ; then
EPATCH_SINGLE_MSG="Patching for gcc 3.4 (patch for 3.2 needed first)..." \
epatch ${DISTDIR}/mysql++-gcc-3.2.patch.gz
EPATCH_SINGLE_MSG="Patching for gcc 3.4..." \
epatch ${DISTDIR}/mysqlplus-gcc-3.4.patch.gz
fi
# Doesn't work for gcc-3.3
EPATCH_SINGLE_MSG="Patching to fix some warnings and errors..." \
epatch ${FILESDIR}/mysql++-1.7.9-gcc_throw.patch
# This is included in mysql++-gcc-3.2.2.patch.gz
#EPATCH_SINGLE_MSG="Patch for const char* error" \
elif [ `gcc-minor-version` -eq 3 ]; then
mv ${S}/sqlplusint/Makefile.in ${S}/sqlplusint/Makefile.in.old
EPATCH_SINGLE_MSG="Patching for gcc 3.3..." \
epatch ${DISTDIR}/patch_gcc_3.3.gz
if [ `gcc-micro-version` -eq 3 ]; then
EPATCH_SINGLE_MSG="Patching for gcc 3.3.3..." \
epatch ${FILESDIR}/mysql++-1.7.9_gcc333.patch
fi
fi
#epatch ${FILESDIR}/mysql++-1.7.9-mysql4-gcc3.patch
else
EPATCH_SINGLE_MSG="Patch for const char* error" \
epatch ${FILESDIR}/mysql++-1.7.9-mysql4-gcc295.patch
fi
EPATCH_SINGLE_MSG="Fixing examples directory bug..." \
epatch ${FILESDIR}/mysql++-1.7.9_example.patch
# add undef_short to list of include files for installation
epatch ${FILESDIR}/mysql++-1.7.9-missing.patch
}
src_compile() {
use amd64 && gnuconfig_update
local myconf
# we want C++ exceptions turned on
myconf="--enable-exceptions"
# We do this because of the large number of header files installed to the include directory
# This is a breakage compared to previous versions that installed straight to /usr/include
myconf="${myconf} --includedir=/usr/include/mysql++"
# not including the directives to where MySQL is because it seems to find it
# just fine without
# force the cflags into place otherwise they get totally ignored by configure
CFLAGS="${CFLAGS}" CXXFLAGS="${CFLAGS} ${CXXFLAGS}" \
econf \
--enable-exceptions \
--includedir=/usr/include/mysql++ || die "econf failed"
emake || die "unable to make"
}
src_install() {
make DESTDIR=${D} install || die
# install the docs and HTML pages
dodoc README LGPL
dodoc doc/*
dohtml doc/man-html/*
prepalldocs
ewarn "The MySQL++ include directory has changed compared to previous versions"
ewarn "It was previously /usr/include, but now it is /usr/include/mysql++"
}
pkg_postinst() {
ewarn "The MySQL++ include directory has changed compared to previous versions"
ewarn "It was previously /usr/include, but now it is /usr/include/mysql++"
}
|