blob: e6b86b4bdbb8e829f5cc426012ddd026ab075f8b (
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/gnustep.eclass,v 1.17 2004/10/04 01:22:19 fafhrd Exp $
inherit eutils flag-o-matic
ECLASS=gnustep
INHERITED="$INHERITED $ECLASS"
DESCRIPTION="EClass designed to facilitate building GNUstep Apps, Frameworks, and Bundles on Gentoo."
IUSE="debug"
DOC_DEPEND="doc? ( =app-text/tetex-2.0*
=dev-tex/latex2html-2002*
=app-text/texi2html-1.6* )"
GNUSTEP_CORE_DEPEND="virtual/libc
>=sys-devel/gcc-3.0.4
${DOC_DEPEND}"
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_GUI_DEPEND}"
DEBUG_DEPEND="debug? >=sys-devel/gdb-6.0"
DOC_RDEPEND="doc? ( sys-apps/man
=sys-apps/texinfo-4.6* )"
GS_RDEPEND="${GS_DEPEND}
${DEBUG_DEPEND}
${DOC_RDEPEND}
virtual/gnustep-back
gnustep-base/gnustep-env"
GENTOO_GNUSTEP_ROOT="/usr/GNUstep"
egnustep_env() {
if [ -f ${GENTOO_GNUSTEP_ROOT}/System/Makefiles/GNUstep.sh ] ; then
. ${GENTOO_GNUSTEP_ROOT}/System/Makefiles/GNUstep.sh
else
die "gnustep-make not installed!"
fi
}
egnustep_make() {
if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then
if [ `use debug` ]; then
emake -j1 HOME=${TMP} \
GNUSTEP_USER_ROOT=${TMP}/GNUstep \
GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \
INSTALL_ROOT_DIR=${D} \
GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \
GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \
GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT} \
GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT} \
GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \
TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \
debug=yes all || die "package make failed"
else
emake -j1 HOME=${TMP} \
GNUSTEP_USER_ROOT=${TMP}/GNUstep \
GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \
INSTALL_ROOT_DIR=${D} \
GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \
GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \
GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT} \
GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT} \
GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \
TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \
all || die "package make failed"
fi
else
die "no Makefile found"
fi
return 0
}
egnustep_package_config() {
if [ -f ${FILESDIR}/config-${PN}.sh ]; then
dodir ${GENTOO_GNUSTEP_ROOT}/System/Tools/Gentoo
exeinto ${GENTOO_GNUSTEP_ROOT}/System/Tools/Gentoo
doexe ${FILESDIR}/config-${PN}.sh
fi
}
egnustep_package_config_info() {
if [ -f ${FILESDIR}/config-${PN}.sh ]; then
einfo "Make sure to set happy defaults for this package by executing:"
einfo " ${GENTOO_GNUSTEP_ROOT}/System/Tools/Gentoo/config-${PN}.sh"
einfo "as the user you will run the package as."
fi
}
egnustep_install() {
if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then
if [ `use debug` ]; then
emake -j1 HOME=${TMP} \
GNUSTEP_USER_ROOT=${TMP}/GNUstep \
GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \
INSTALL_ROOT_DIR=${D} \
GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \
GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \
GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT} \
GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT} \
GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \
TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \
debug=yes install || die "package install failed"
else
emake -j1 HOME=${TMP} \
GNUSTEP_USER_ROOT=${TMP}/GNUstep \
GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \
INSTALL_ROOT_DIR=${D} \
GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \
GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \
GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT} \
GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT} \
GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \
TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \
install || die "package install failed"
fi
else
die "no Makefile found"
fi
return 0
}
egnustep_doc() {
if [ -f ./Documentation/GNUmakefile -o -f ./Documentation/[mM]akefile ]
then
cd Documentation
make HOME=${TMP} \
GNUSTEP_USER_ROOT=${TMP}/GNUstep \
INSTALL_ROOT_DIR=${D} \
GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \
GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \
all || die "doc make failed"
make HOME=${TMP} \
GNUSTEP_USER_ROOT=${TMP}/GNUstep \
GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \
INSTALL_ROOT_DIR=${D} \
GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \
GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \
GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \
TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \
install || die "doc install failed"
cd ..
fi
}
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
}
gnustep_src_unpack() {
unpack ${A}
cd ${S}
}
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_unpack src_compile src_install pkg_postinst
|