aboutsummaryrefslogtreecommitdiff
blob: 5edcbd0eac7919b797d9ebffd0d828f9dc5735f8 (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
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /home/httpd/cvsroot/gentoo-x86/app-emulation/winex-cvs/Attic/winex-cvs-3.1.ebuild,v 1.5 2003/07/29 06:55:55 coronalvr dead $

IUSE="cups opengl nptl"

inherit eutils

# Dont modify the ECVS_BRANCH setting yourself.
# Instead, make a backup of this ebuild and rename it to
# winex-[your branch].ebuild. 
#
# Example:
#   winex-kohan-2.1.ebuild
#
# You can find more branches on 
# http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/winex/wine/


ECVS_SERVER="cvs.winex.sourceforge.net:/cvsroot/winex"
ECVS_MODULE="wine"
ECVS_BRANCH=${PN/cvs/}${PV//./-}
ECVS_BRANCH=${ECVS_BRANCH/pre/pre-}
ECVS_BRANCH=${ECVS_BRANCH/_/-}
ECVS_TOP_DIR="${DISTDIR}/cvs-src/${ECVS_BRANCH}"

inherit cvs

S=${WORKDIR}/${ECVS_MODULE}
#echo ${ECVS_BRANCH}
	

DESCRIPTION="WineX is a distribution of Wine with enhanced DirectX for gaming.
	     This ebuild will fetch the newest cvs sources from the cvs-server."
HOMEPAGE="http://www.transgaming.com/"

SLOT="0"
KEYWORDS="x86 -ppc"
LICENSE="Aladdin"

newdepend "sys-devel/gcc
	sys-devel/flex
	dev-util/yacc
	>=media-libs/freetype-2.0.0
	X? ( 	virtual/x11 
		dev-lang/tcl 
		dev-lang/tk ) 
	opengl? ( virtual/opengl )
	cups? ( net-print/cups )
	!>=sys-libs/glibc-2.3.2"

src_unpack() {
	if ! [ -z "`perl -V:archname 2> /dev/null | grep 'thread-multi'`" ]
	then
		eerror "Sorry - can't build winex against threaded perl!"
		eerror "Please remerge perl and libperl WITHOUT 'USE=threads'"
		die "Not compatible with threaded perl"
	fi
	cvs_src_unpack
}

src_compile() {
	cd ${S}
	local myconf

	use opengl && myconf="--enable-opengl" || myconf="--disable-opengl"
	[ -z $DEBUG ] && myconf="$myconf --disable-trace --disable-debug" || myconf="$myconf --enable-trace --enable-debug"

	# for nptl threads
	use nptl && myconf="$myconf --enable-pthreads"
	
	# patching winex to not compile wcmd
	epatch ${FILESDIR}/winex-cvs-3.0_pre1.patch

	# the folks at #winehq were really angry about custom optimization
	unset CFLAGS
	unset CXXFLAGS
	
	./configure --prefix=/usr/lib/winex-cvs \
		--sysconfdir=/etc/winex-cvs \
		--host=${CHOST} \
		--enable-curses \
		--with-x \
		${myconf} || die "configure failed"

	# Fixes a winetest issue
	cd ${S}/programs/winetest
	cp Makefile 1
	sed -e 's:wine.pm:include/wine.pm:' 1 > Makefile

	# This persuades wineshelllink that "winex-cvs" is a better loader :)
	cd ${S}/tools
	cp wineshelllink 1
	sed -e 's/\(WINE_LOADER=\)\(\${WINE_LOADER:-wine}\)/\1winex-cvs/' 1 > wineshelllink

	cd ${S}	
	make depend all || die "make depend all failed"
	cd programs && gmake || die "emake died"
}

src_install () {
	local WINEXMAKEOPTS="prefix=${D}/usr/lib/winex-cvs"
	
	# Installs winex to /usr/lib/winex-cvs
	cd ${S}
	make ${WINEXMAKEOPTS} install || die "make install failed"
	cd ${S}/programs
	make ${WINEXMAKEOPTS} install || die "make install failed"
	

	# Creates /usr/lib/winex-cvs/.data with fake_windows in it
	# This is needed for our new winex-cvs wrapper script
	dodir /usr/lib/winex-cvs/.data
	pushd ${D}/usr/lib/winex-cvs/.data
	tar jxvf ${FILESDIR}/${PN}-fake_windows.tar.bz2 
	popd
	cp ${S}/documentation/samples/config ${S}/documentation/samples/config.orig
	sed -e 's/.transgaming\/c_drive/.winex-cvs\/fake_windows/' \
	    ${S}/documentation/samples/config.orig > ${S}/documentation/samples/config
	cp ${S}/documentation/samples/config ${D}/usr/lib/winex-cvs/.data/config
	cp ${WORKDIR}/wine/winedefault.reg ${D}/usr/lib/winex-cvs/.data/winedefault.reg
	# Install the wrapper script
	dodir /usr/bin
	cp ${FILESDIR}/${PN}-winex ${D}/usr/bin/winex-cvs
	cp ${FILESDIR}/${PN}-regedit ${D}/usr/bin/regedit-winex-cvs

	# Take care of the other stuff
	cd ${S}
	dodoc ANNOUNCE AUTHORS BUGS ChangeLog DEVELOPERS-HINTS LICENSE README

	insinto /usr/lib/winex-cvs/.data/fake_windows/Windows
	doins documentation/samples/system.ini
	doins documentation/samples/generic.ppd
	
	# Manpage setup
	cp ${D}/usr/lib/${PN}/man/man1/wine.1 ${D}/usr/lib/${PN}/man/man1/${PN}.1
	doman ${D}/usr/lib/${PN}/man/man1/${PN}.1
	rm ${D}/usr/lib/${PN}/man/man1/${PN}.1
	doman ${D}/usr/lib/${PN}/man/man5/wine.conf.5
	rm ${D}/usr/lib/${PN}/man/man5/wine.conf.5

	# Remove the executable flag from those libraries.
	cd ${D}/usr/lib/winex-cvs/bin
	chmod a-x *.so
		
}

pkg_postinst() {
	einfo "Use /usr/bin/winex-cvs to start winex."
	einfo "This is a wrapper-script which will take care of everything"
	einfo "else. If you have further questions, enhancements or patches"
	einfo "send an email to phoenix@gentoo.org"
	einfo ""
	einfo "Manpage has been installed to the system."
	einfo "\"man winex-cvs\" should show it."
}