blob: 19040109ec760d515bc41e2bc4d266142a4a92f5 (
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# Copyright 1999-2006 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/gnustep.eclass,v 1.34 2006/06/25 14:46:52 grobian Exp $
inherit gnustep-funcs eutils flag-o-matic
DESCRIPTION="EClass designed to facilitate building GNUstep Apps, Frameworks, and Bundles on Gentoo."
###########################################################################
# IUSE variables across all GNUstep packages
# ##### All GNUstep applications / libs get these
# "debug" - enable code for debugging; also nostrip
# "profile" - enable code for profiling; also nostrip
# "verbose" - enable "normal / noisy" compiling from eclass
# "doc" - build and install documentation, if available
IUSE="debug profile verbose doc"
if use debug || use profile; then
RESTRICT="nostrip"
fi
###########################################################################
###########################################################################
# Internal variables
#__GS_INSTALL_DOMAIN="GNUSTEP_SYSTEM_ROOT"
#__GS_USER_ROOT_SUFFIX="/"
#__GS_MAKE_EVAL=""
#__GS_PREFIX="/usr/GNUstep"
#__GS_SYSTEM_ROOT="/usr/GNUstep/System"
#__GS_LOCAL_ROOT="/usr/GNUstep/Local"
#__GS_NETWORK_ROOT="/usr/GNUstep/Network"
#__GS_USER_ROOT="~/GNUstep"
###########################################################################
###########################################################################
# Variables
# ---------
# ~ legend
# (a) - append more data if needed
# (n) - do not override without a good reason
# (y) - override as appropriate per ebuild
# Build general GNUstep ebuild depends here
# - most .app should be set up this way:
# + (a) DEPEND="${GS_DEPEND} other/depend ..."
# + (a) RDEPEND="${GS_RDEPEND} other/rdepend ..."
# - core libraries and other packages that need to
# specialize more can use:
# + (n) DOC_DEPEND - packages needed to build docs
# + (n) GNUSTEP_CORE_DEPEND - packages needed to build any gnustep package
# + (n) GNUSTEP_BASE_DEPEND - packages needed to build gnustep CLI only apps
# + (n) GNUSTEP_GUI_DEPEND - packages needed to build gnustep GUI apps
# + (n) DEBUG_DEPEND - packages needed to utilize .debug apps
# + (n) DOC_RDEPEND - packages needed to view docs
###########################################################################
DOC_DEPEND="doc? ( virtual/tetex
=dev-tex/latex2html-2002*
>=app-text/texi2html-1.64 )"
GNUSTEP_CORE_DEPEND="virtual/libc
>=sys-devel/gcc-3.3.5
${DOC_DEPEND}"
##########################################
# Armando Di Cianno <fafhrd@gentoo.org>
# 20050414 - Removing use of the next two entries from all dependent ebuilds;
# they were doing bad things to dependencies
GNUSTEP_BASE_DEPEND="${GNUSTEP_CORE_DEPEND}
gnustep-base/gnustep-make
gnustep-base/gnustep-base"
GNUSTEP_GUI_DEPEND="${GNUSTEP_BASE_DEPEND}
gnustep-base/gnustep-gui"
##########################################
GS_DEPEND="gnustep-base/gnustep-env"
DEBUG_DEPEND="debug? ( >=sys-devel/gdb-6.0 )"
DOC_RDEPEND="doc? ( virtual/man
>=sys-apps/texinfo-4.6 )"
GS_RDEPEND="${GS_DEPEND}
${DEBUG_DEPEND}
${DOC_RDEPEND}"
###########################################################################
###########################################################################
# Ebuild function overrides
# -------------------------
gnustep_pkg_setup() {
if test_version_info 3.3
then
#einfo "Using gcc 3.3*"
# gcc 3.3 doesn't support certain 3.4.1 options,
# as well as having less specific -march options
replace-flags -march=pentium-m -march=pentium3
filter-flags -march=k8
filter-flags -march=athlon64
filter-flags -march=opteron
strip-unsupported-flags
elif test_version_info 3.4
then
# strict-aliasing is known to break obj-c stuff in gcc-3.4*
filter-flags -fstrict-aliasing
fi
# known to break ObjC (bug 86089)
filter-flags -fomit-frame-pointer
}
gnustep_src_compile() {
egnustep_env
egnustep_make || die
}
gnustep_src_install() {
egnustep_env
egnustep_install || die
if use doc ; then
egnustep_env
egnustep_doc || die
fi
egnustep_package_config
}
gnustep_pkg_postinst() {
egnustep_package_config_info
}
###########################################################################
EXPORT_FUNCTIONS pkg_setup src_compile src_install pkg_postinst
|