]> Pileus Git - ~andy/sunrise/blob - dev-lang/xharbour/xharbour-1.0.0_beta1.ebuild
dev-lang/xharbour: New ebuild for bug 123975. Thanks to Clemens Dudek <cdudek@netway...
[~andy/sunrise] / dev-lang / xharbour / xharbour-1.0.0_beta1.ebuild
1 # Copyright 1999-2009 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: $
4
5 inherit base
6
7 MY_P=${P/_/-}
8 DESCRIPTION="An extended implementation of the Clipper dialect of the xBase language family"
9 HOMEPAGE="http://www.xharbour.org/"
10 SRC_URI="mirror://sourceforge/${PN}/${MY_P}.src.tar.gz"
11
12 LICENSE="GPL-2-with-exceptions"
13 SLOT="0"
14 KEYWORDS="~amd64 ~x86"
15 IUSE="allegro doc gpm odbc slang threads X"
16
17 RDEPEND="
18         sys-libs/ncurses
19         virtual/libc
20         allegro? ( media-libs/allegro )
21         gpm? ( sys-libs/gpm )
22         odbc? ( dev-db/unixODBC )
23         slang? ( sys-libs/slang )
24         X? ( media-libs/freetype
25                  x11-libs/libX11
26                  x11-libs/libXext
27                  x11-libs/libXmu
28                  x11-libs/libXpm
29                  x11-libs/libXt )"
30 DEPEND="${RDEPEND}
31         sys-devel/bison"
32
33 S=${WORKDIR}/${MY_P}
34
35 PATCHES=(
36         "${FILESDIR}"/${PN}-as-needed.patch
37         "${FILESDIR}"/${PN}-fPIC.patch
38         "${FILESDIR}"/${PN}-mkinstdir.patch
39         "${FILESDIR}"/${PN}-parallel-make.patch
40         "${FILESDIR}"/${PN}-skip-static-utils.patch
41 )
42
43 src_compile() {
44         # xHarbour uses environment vars to configure the build
45         export \
46                 C_USR="${CFLAGS}" \
47                 L_USR="${LDFLAGS}" \
48                 HB_GTALLEG=$(useq allegro && echo yes) \
49                 HB_GPM_MOUSE=$(useq gpm && echo yes) \
50                 HB_WITHOUT_GTSLN=$(useq slang || echo yes) \
51                 HB_MT=$(useq threads && echo MT) \
52                 HB_WITHOUT_X11=$(useq X || echo yes) \
53                 HB_COMPILER="gcc" \
54                 HB_ARCHITECTURE="$(uname -s | sed -e 's/-//g;y/BDFHLNOPSUX/bdfhlnopsux/;s/.*bsd/bsd/')" \
55                 HB_GT_LIB="gtstd" \
56                 HB_MULTI_GT="yes" \
57                 HB_COMMERCE="no"
58         emake || die
59 }
60
61 src_test() {
62         emake -C utils/hbtest || die
63         utils/hbtest/*/*/hbtest
64         einfo "In general, the package works if 'Total calls passed' figure above"
65         einfo "is 90% or greater."
66 }
67
68 src_install() {
69         # xHarbour uses environment vars to configure the install
70         export _DEFAULT_BIN_DIR=/usr/bin
71         export _DEFAULT_INC_DIR=/usr/include/xharbour
72         export _DEFAULT_LIB_DIR=/usr/lib/xharbour
73         export HB_BIN_INSTALL="${D}"/usr/bin
74         export HB_INC_INSTALL="${D}"/usr/include/xharbour
75         export HB_LIB_INSTALL="${D}"/usr/lib/xharbour
76         emake install || die
77
78         dodir /etc/harbour
79         install -m644 source/rtl/gtcrs/hb-charmap.def "${D}"/etc/harbour/hb-charmap.def || die
80         cat > "${D}"/etc/harbour.cfg <<-EOF
81                 CC=$(tc-getCC)
82                 CFLAGS=-c -I${_DEFAULT_INC_DIR} ${CFLAGS}
83                 VERBOSE=YES
84                 DELTMP=YES
85         EOF
86
87         # build utils with shared libs
88         L_USR="${L_USR} -L${HB_LIB_INSTALL} -l${PN}"
89         export PRG_USR="\"-D_DEFAULT_INC_DIR='${_DEFAULT_INC_DIR}'\""
90         for utl in hbdict hbmake hbpp hbrun xbscript; do
91                 emake -C utils/${utl} install || die
92         done
93
94         dosym xbscript /usr/bin/pprun
95         dosym xbscript /usr/bin/xprompt
96
97         # remove unused files
98         rm -f "${HB_BIN_INSTALL}"/{hbdict*.hit,gharbour,harbour-link}
99
100         dodoc ChangeLog || die
101         if ! has nodoc ${FEATURES} && use doc; then
102                 dodoc doc/*.txt || die
103                 strip-linguas en es
104                 for LNG in ${LINGUAS}; do
105                         docinto "${LNG}"
106                         dodoc doc/${LNG}/*.txt || die
107                 done
108                 docinto ct
109                 dodoc doc/en/ct/*.txt || die
110         fi
111 }