blob: 5f25ee571ab7bcf97d21bc922b374874505a367f (
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
|
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/gnustep-base/gnustep-make/gnustep-make-1.12.0-r1.ebuild,v 1.1 2006/03/26 07:55:25 grobian Exp $
inherit gnustep
DESCRIPTION="GNUstep Makefile Package"
HOMEPAGE="http://www.gnustep.org"
SRC_URI="ftp://ftp.gnustep.org/pub/gnustep/core/${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~ppc ~ppc-macos ~ppc64 ~sparc ~x86"
SLOT="0"
LICENSE="GPL-2"
# removed doc from IUSE, because building documentation is broken
IUSE="debug verbose layout-from-conf-file layout-osx-like non-flattened"
DEPEND="${GNUSTEP_CORE_DEPEND}
>=sys-devel/make-3.75"
RDEPEND="${DEPEND}
${DOC_RDEPEND}"
egnustep_install_domain "System"
pkg_setup() {
gnustep_pkg_setup
if [ "$(objc_available)" == "no" ]; then
objc_not_available_info
die "ObjC support not available"
fi
if use layout-from-conf-file && use layout-osx-like ; then
eerror "layout-from-conf-file and layout-osx-like are mutually exclusive use flags."
die "USE flag misconfiguration -- please correct"
fi
if use layout-from-conf-file || use layout-osx-like ; then
ewarn "USE layout-from-conf-file || layout-osx-like"
ewarn "Utilizing these USE flags allows one to install files in non standard"
ewarn " locations vis a vis the Linux FHS -- please fully comprehend what you"
ewarn " are doing when setting this USE flag."
fi
if use layout-from-conf-file; then
if [ ! -f /etc/conf.d/gnustep.env ]; then
eerror "There is no /etc/conf.d/gnustep.env file!"
eerror "Did you read the USE flag description?"
die "USE flag misconfiguration -- please correct"
else
unset GNUSTEP_SYSTEM_ROOT
unset GNUSTEP_LOCAL_ROOT
unset GNUSTEP_NETWORK_ROOT
unset GNUSTEP_USER_ROOT
. /etc/conf.d/gnustep.env
if [ -z "${GNUSTEP_SYSTEM_ROOT}" ] || [ "/" != "${GNUSTEP_SYSTEM_ROOT:0:1}" ]; then
eerror "GNUSTEP_SYSTEM_ROOT is missing or misconfigured in /etc/conf.d/gnustep.env"
eerror "GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT}"
die "USE flag misconfiguration -- please correct"
fi
if [ "/System" != ${GNUSTEP_SYSTEM_ROOT:$((${#GNUSTEP_SYSTEM_ROOT}-7)):7} ]; then
eerror "GNUSTEP_SYSTEM_ROOT must end with \"System\" -- read the USE flag directions!!!"
die "USE flag misconfiguration -- please correct"
fi
if [ "${GNUSTEP_LOCAL_ROOT}" ] && [ "/" != "${GNUSTEP_LOCAL_ROOT:0:1}" ]; then
eerror "GNUSTEP_LOCAL_ROOT is misconfigured in /etc/conf.d/gnustep.env"
eerror "GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT}"
die "USE flag misconfiguration -- please correct"
elif [ -z "${GNUSTEP_LOCAL_ROOT}" ]; then
GNUSTEP_LOCAL_ROOT="$(dirname ${GNUSTEP_SYSTEM_ROOT})/Local"
fi
if [ "${GNUSTEP_NETWORK_ROOT}" ] && [ "/" != "${GNUSTEP_NETWORK_ROOT:0:1}" ]; then
eerror "GNUSTEP_NETWORK_ROOT is misconfigured in /etc/conf.d/gnustep.env"
eerror "GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT}"
die "USE flag misconfiguration -- please correct"
elif [ -z "${GNUSTEP_NETWORK_ROOT}" ]; then
GNUSTEP_NETWORK_ROOT="$(dirname ${GNUSTEP_SYSTEM_ROOT})/Network"
fi
if [ "${GNUSTEP_USER_ROOT}" ] && [ '~' != "${GNUSTEP_USER_ROOT:0:1}" ]; then
eerror "GNUSTEP_USER_ROOT is misconfigured in /etc/conf.d/gnustep.env"
eerror "GNUSTEP_USER_ROOT=${GNUSTEP_USER_ROOT}"
die "USE flag misconfiguration -- please correct"
elif [ -z "${GNUSTEP_USER_ROOT}" ]; then
GNUSTEP_USER_ROOT='~/GNUstep'
fi
egnustep_prefix "$(dirname ${GNUSTEP_SYSTEM_ROOT})"
egnustep_system_root "${GNUSTEP_SYSTEM_ROOT}"
egnustep_local_root "${GNUSTEP_LOCAL_ROOT}"
egnustep_network_root "${GNUSTEP_NETWORK_ROOT}"
egnustep_user_root "${GNUSTEP_USER_ROOT}"
fi
elif use layout-osx-like; then
egnustep_prefix "/"
egnustep_system_root "/System"
egnustep_local_root "/"
egnustep_network_root "/Network"
egnustep_user_root '~'
else
# setup defaults here
egnustep_prefix "/usr/GNUstep"
egnustep_system_root "/usr/GNUstep/System"
egnustep_local_root "/usr/GNUstep/Local"
egnustep_network_root "/usr/GNUstep/Network"
egnustep_user_root '~/GNUstep'
fi
# if use layout-from-conf-file || use layout-osx-like; then
einfo "GNUstep installation will be laid out as follows:"
einfo "\tGNUSTEP_SYSTEM_ROOT=`egnustep_system_root`"
einfo "\tGNUSTEP_LOCAL_ROOT=`egnustep_local_root`"
einfo "\tGNUSTEP_NETWORK_ROOT=`egnustep_network_root`"
einfo "\tGNUSTEP_USER_ROOT=`egnustep_user_root`"
ebeep
epause 10
# fi
}
src_compile() {
cd ${S}
# gnustep-make ./configure : "prefix" here is going to be where
# "System" is installed -- other correct paths should be set
# by econf
local myconf
myconf="--prefix=`egnustep_prefix`"
use non-flattened && myconf="$myconf --disable-flattened --enable-multi-platform"
myconf="$myconf --with-tar=/bin/tar"
myconf="$myconf --with-local-root=`egnustep_local_root`"
myconf="$myconf --with-network-root=`egnustep_network_root`"
myconf="$myconf --with-user-root=`egnustep_user_root`"
myconf="$myconf --enable-strip-makefiles"
myconf="$myconf --disable-importing-config-file"
econf $myconf || die "configure failed"
egnustep_make
}
src_install() {
. ${S}/GNUstep.sh
local make_eval=" \
special_prefix=\"\${D}\$(egnustep_system_root)\" \
makedir=\${D}\$(egnustep_system_root)/Library/Makefiles \
GNUSTEP_USER_ROOT=\${T} \
GNUSTEP_INSTALLATION_DIR=\${D}\$(egnustep_system_root) \
-j1"
local docinstall="GNUSTEP_INSTALLATION_DIR=${D}$(egnustep_system_root)"
if use debug ; then
make_eval="${make_eval} debug=yes"
fi
if use verbose ; then
make_eval="${make_eval} verbose=yes"
fi
eval make ${make_eval} special_prefix=${D} install \
|| die "install has failed"
# building documentation is broken
# if use doc ; then
# cd Documentation
# emake ${make_eval} all || die "doc make has failed"
# make ${make_eval} ${docinstall} install || die "doc install has failed"
# cd ..
# fi
dodir /etc/conf.d
echo "GNUSTEP_SYSTEM_ROOT=$(egnustep_system_root)" > ${D}/etc/conf.d/gnustep.env
echo "GNUSTEP_LOCAL_ROOT=$(egnustep_local_root)" >> ${D}/etc/conf.d/gnustep.env
echo "GNUSTEP_NETWORK_ROOT=$(egnustep_network_root)" >> ${D}/etc/conf.d/gnustep.env
echo "GNUSTEP_USER_ROOT='$(egnustep_user_root)'" >> ${D}/etc/conf.d/gnustep.env
insinto /etc/GNUstep
doins ${S}/GNUstep.conf
exeinto /etc/profile.d
doexe ${FILESDIR}/gnustep.sh
doexe ${FILESDIR}/gnustep.csh
}
|