blob: 995100840c475350fdac468a637a2fde2dce9186 (
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
|
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sci-electronics/magic/magic-7.1-r5.ebuild,v 1.2 2005/09/21 15:14:01 phosphan Exp $
inherit eutils flag-o-matic
DESCRIPTION="The VLSI design CAD tool"
HOMEPAGE="http://vlsi.cornell.edu/magic/"
SRC_URI="http://vlsi.cornell.edu/magic/${P}.tar.gz"
LICENSE="as-is"
SLOT="0"
KEYWORDS="x86 ~ppc"
IUSE=""
RDEPEND="sys-libs/ncurses
sys-libs/readline"
DEPEND="${RDEPEND}
sys-apps/findutils
dev-lang/perl
>=app-shells/tcsh-6.10-r3"
src_unpack() {
unpack ${A}
# Patch to use FHS paths
epatch ${FILESDIR}/${P}-fhs.patch
# Patch for GCC 3.2 compatibility
epatch ${FILESDIR}/${P}-gcc3.2.patch
# Add one more needed for GCC 3.4 (but earlier gcc won't mind)
epatch ${FILESDIR}/${P}-remove-decl.patch
# Fix endianness problem for ppc
epatch ${FILESDIR}/${P}-ppc-endian.patch
# some gcc 3.3 stuff, paths...
cd ${S}
# work around cvs problem
sed -i 's/\$Header/\$NO_RCS_Header/' magic/proto.magic
epatch ${FILESDIR}/${P}-misc.patch
# Insert our idea of configuration file
cp ${FILESDIR}/defs.mak-${PV}-r3 ${S}/defs.mak
strip-flags
sed -i "/^CFLAGS/ s/=.*/= ${CFLAGS}/;" ${S}/defs.mak
scripts/makedbh database/database.h.in database/database.h
# Clean up all the pre-GCC-3.2 preprocessor directives
einfo "Cleansing preprocessor directives"
find ./ -name "*.[ch]" | xargs -n 1 perl -pi -e 's/^\#endif..*$/\#endif/'
find ./ -name "*.[ch]" | xargs -n 1 perl -pi -e 's/^\#else..*$/\#else/'
# Use ".magic-cad" rather than ".magic" as the config file to avoid
# conflicts with "sys-apps/file" (see bug #74592).
einfo 'Replacing occurences of ".magic" by ".magic-cad".'
cd ${S}
for i in extflat/*.c lisp/other/{*.c,Makefile.magic,:config} \
macros/*.c magic/{Makefile,.\#Makefile.1.6,proto.magic} \
magicusage/*.c main/*.c READ_ME scripts/config; do
sed -e 's/ .magic/ .magic-cad/' \
-e 's/".magic"/".magic-cad"/' \
-e 's%/.magic%/.magic-cad%' \
-i ${i} || die
done
rm -rf readline # we use the shared system library
rm */Depend # contains links to magic's readline
}
src_compile() {
# this program does not like optimizations or parallel builds
make || die
egrep -q "^make.*Error" make.log && die "Error while compiling - please add ${S}/make.log to your error report."
}
src_install() {
make DESTDIR=${D} install || die
insinto /etc/env.d
doins ${FILESDIR}/10magic
keepdir /var/lock/magic
chmod +t ${D}/var/lock/magic
chmod ugo+rwx ${D}/var/lock/magic
cd ${D}/usr/lib/magic
mv * ${D}/usr/share/magic/
cd ${D}/usr/lib
mv *.h *.a magic/
ln -s ../../share/magic/sys magic/sys
ln -s ../../share/magic/scm magic/scm
ln -s ../../share/magic/tutorial magic/tutorial
# try to make man page names unique (many are so generic they collide)
cd ${D}/usr/share/man
find . -type f ! -name "*magic*" -exec \
sh -c 'F=`echo {} | sed -e "s:\(man.\)/:\1/magic-:;"` ; mv "{}" "${F}" ' \;
# Use ".magic" for the global config file.
cd ${D}/usr/share/magic/sys
mv .magic-cad .magic
dodoc ${FILESDIR}/README.Gentoo
}
pkg_postinst() {
ewarn 'On Gentoo systems, you should use "~/.magic-cad" as your personnal'
ewarn 'Magic startup file rather than "~/.magic". For more details, see'
ewarn '"README.Gentoo"'
}
|