1 | # Copyright 1999-2009 Gentoo Foundation
|
---|
2 | # Distributed under the terms of the GNU General Public License v2
|
---|
3 | # $Header: ... ebo Exp $
|
---|
4 |
|
---|
5 | #inherit flag-o-matic subversion eutils
|
---|
6 | inherit subversion
|
---|
7 |
|
---|
8 | DESCRIPTION="A Modelica modeling, compilation and simulation environment."
|
---|
9 | HOMEPAGE="http://www.ida.liu.se/labs/pelab/modelica/OpenModelica.html"
|
---|
10 |
|
---|
11 | # the original package tarball disappeared, so build it from SVN source
|
---|
12 | ESVN_REPO_URI="https://openmodelica.ida.liu.se/svn/OpenModelica/trunk"
|
---|
13 | ESVN_OPTIONS=" --username anonymous --password none"
|
---|
14 | S=${WORKDIR}/trunk
|
---|
15 |
|
---|
16 |
|
---|
17 | LICENSE="OSMC"
|
---|
18 | SLOT="0"
|
---|
19 | KEYWORDS="~amd64 ~x86"
|
---|
20 | IUSE="+corba doc threads fortran"
|
---|
21 |
|
---|
22 | DEPEND="sys-apps/sed
|
---|
23 | sys-apps/coreutils
|
---|
24 | sys-apps/findutils
|
---|
25 | app-arch/tar
|
---|
26 | media-libs/coin
|
---|
27 | media-libs/SoQt"
|
---|
28 | RDEPEND="dev-lang/rml
|
---|
29 | =dev-java/antlr-2*
|
---|
30 | sys-libs/readline
|
---|
31 | threads? ( dev-libs/boost )
|
---|
32 | corba? ( >=net-misc/mico-2.3.12
|
---|
33 | =x11-libs/qt-4*
|
---|
34 | >=virtual/jre-1.4 )
|
---|
35 | ${DEPEND}"
|
---|
36 |
|
---|
37 | pkg_setup() {
|
---|
38 | export RMLHOME="${ROOT}usr"
|
---|
39 | export ANTLRHOME="${ROOT}usr"
|
---|
40 | export CLASSPATH="${ROOT}usr/share/antlr/lib/antlr.jar"
|
---|
41 |
|
---|
42 | # This package is very sensitive to parallelisation of the build
|
---|
43 | # process. Do not do it and you will be safe.
|
---|
44 | MAKEOPTS="${MAKEOPTS} -j1"
|
---|
45 | }
|
---|
46 |
|
---|
47 | src_unpack() {
|
---|
48 | subversion_src_unpack || die "subversion unpack failed"
|
---|
49 |
|
---|
50 | cd "${S}"
|
---|
51 | chmod +x configure
|
---|
52 | chmod +x Compiler/rml2sig/rmldep-new.sh
|
---|
53 |
|
---|
54 | # FIXME:
|
---|
55 | #epatch "${FILESDIR}/${P}-build_fixes.patch"
|
---|
56 | epatch "${FILESDIR}/OpenModelica-1.4.5-build_fixes.patch"
|
---|
57 |
|
---|
58 | # Convert DOS line endings to UNIX, or script will not work.
|
---|
59 | sed -i -e "s|\r$||g" configure
|
---|
60 | }
|
---|
61 |
|
---|
62 | src_compile() {
|
---|
63 | econf \
|
---|
64 | --without-CORBA \
|
---|
65 | $(use_with corba CORBA) \
|
---|
66 | $(use_with threads MODPAR) \
|
---|
67 | $(use_with threads BOOST) \
|
---|
68 | || die "Configure failed."
|
---|
69 |
|
---|
70 | # Correct the documentation installation directory: the package
|
---|
71 | # does not give a 'make doc' alternative, so we simply install it
|
---|
72 | # into a folder that will be discarded if documentation is not
|
---|
73 | # desired.
|
---|
74 | if use doc ; then
|
---|
75 | sed -i -r "s|^(INSTALL_DOCDIR.*)/omc/doc|\1/doc/${P}|" "${S}/Makefile"
|
---|
76 | else
|
---|
77 | sed -i -r "s|^(INSTALL_DOCDIR).*/omc/doc|\1 = ${T}/rubbish|" "${S}/Makefile"
|
---|
78 | fi
|
---|
79 |
|
---|
80 | emake || die "Build of the OpenModelica Compiler failed."
|
---|
81 |
|
---|
82 | if use corba ; then
|
---|
83 | cd "${S}/OMShell"
|
---|
84 | qmake OMShell.pro || die "QMake could not be run on OMShell.pro."
|
---|
85 | emake || die "Build of the OpenModelica GUI Shell failed."
|
---|
86 | else
|
---|
87 | ewarn "You deactivated CORBA support for OpenModelica. This means also"
|
---|
88 | ewarn "that the Qt-based GUI will not be built."
|
---|
89 | fi
|
---|
90 | }
|
---|
91 |
|
---|
92 | src_install() {
|
---|
93 | sed -i -r "s#^((lib|data)dir\s*=)\s*/usr(.*)#\1 \${prefix}\3#" Makefile
|
---|
94 | make prefix="${D}/usr" install
|
---|
95 | dobin "${S}/OMShell/OMShell"
|
---|
96 | # Yes, it looks stupid to put data files in /bin, but that's
|
---|
97 | # where OpenModelica expects them to be.
|
---|
98 | dobin "${S}/OMNotebook/OMNotebookQT4/commands.xml"
|
---|
99 | dobin "${S}/OMNotebook/OMNotebookQT4/modelicacolors.xml"
|
---|
100 | dobin "${S}/OMNotebook/OMNotebookQT4/stylesheet.xml"
|
---|
101 |
|
---|
102 | # removed... see below
|
---|
103 | #dodoc "${S}/build/bin/ptplot\ copyright.txt"
|
---|
104 | dodoc "${S}/OSMC-License.txt"
|
---|
105 |
|
---|
106 | # Untar the Modelica standard library and set permissions
|
---|
107 | LIBRARYDIR="${D}/usr/share/${PN}"
|
---|
108 | mkdir ${LIBRARYDIR}
|
---|
109 | cd ${LIBRARYDIR}
|
---|
110 | tar xzf "${S}/Compiler/VC7/Setup/zips/ModelicaLib.tar.gz"
|
---|
111 | for DIR in $( find ${LIBRARYDIR} -type d )
|
---|
112 | do
|
---|
113 | chmod 755 ${DIR}
|
---|
114 | done
|
---|
115 | for FILE in $( find ${LIBRARYDIR} -type f )
|
---|
116 | do
|
---|
117 | chmod 644 ${FILE}
|
---|
118 | done
|
---|
119 |
|
---|
120 | # Build environment variables
|
---|
121 | echo "OPENMODELICAHOME=${ROOT}usr" > "${T}/99OpenModelica"
|
---|
122 | echo "OPENMODELICALIBRARY=${ROOT}usr/share/${PN}/ModelicaLibrary" >> "${T}/99OpenModelica"
|
---|
123 | doenvd "${T}/99OpenModelica"
|
---|
124 |
|
---|
125 | # Do some spring cleaining: some files must be removed.
|
---|
126 | cd "${D}/usr"
|
---|
127 | # Note that lib/ could be lib64/ or lib32/.
|
---|
128 | rm -f lib*/libQt*.a lib*/libf2c*
|
---|
129 | # This has been dodoc'ed above.
|
---|
130 | rm -f bin/ptplot\ copyright.txt
|
---|
131 | # Remove files that are not useful in UNIX.
|
---|
132 | rm -f bin/Compile.* bin/doPlot.* bin/omc_*
|
---|
133 | # Remove one header that belongs to another package.
|
---|
134 | rm -f include/f2c.h
|
---|
135 |
|
---|
136 | # Adjust some permissions
|
---|
137 | chmod 755 "${D}/usr/bin/Compile"
|
---|
138 | chmod 755 "${D}/usr/bin/doPlot"
|
---|
139 | # ... And fix some line endings
|
---|
140 | sed -i -e "s|\r$||g" "${D}/usr/bin/Compile"
|
---|
141 | sed -i -e "s|\r$||g" "${D}/usr/bin/doPlot"
|
---|
142 | }
|
---|
143 |
|
---|
144 | pkg_postinst() {
|
---|
145 | if use corba ; then
|
---|
146 | ewarn "Remember to run 'source /etc/profile' as a user before starting the"
|
---|
147 | ewarn "graphical interface OMShell, otherwise it will not be able to"
|
---|
148 | ewarn "find the compiler and the Modelica standard library."
|
---|
149 | ewarn
|
---|
150 | ewarn "Note that OMShell generates a number of garbage files (C++ files,"
|
---|
151 | ewarn "result listings, executables) in the folder it is run from. You"
|
---|
152 | ewarn "should run OMShell from a sandbox folder."
|
---|
153 | fi
|
---|
154 | echo
|
---|
155 | einfo "OpenModelica..."
|
---|
156 | echo
|
---|
157 | }
|
---|