J'ai récemment installé Arch sur un Odroid-XU4 ( http://archlinuxarm.org/platforms/armv7 ... odroid-xu4 ) tout fonctionne à merveille.
L'ennui est que j'ai besoin de FreeCad et d'OpenCascade (dépendance) qui ne sont pas présents dans les dépôts d'ArchLinuxARM ( http://archlinuxarm.org/ ). Je m'attaque donc à la compilation d'OpenCascade dans un premier temps, après quelques recherches j'ai trouvé ces fichiers pour m'aider, n'étant pas un expert :
PKGBUILD
Code : Tout sélectionner
# Maintainer: Florian Pritz <bluewind@xinu.at>
# Contributor: Giuseppe Borzi <gborzi@ieee.org>
# Contributor: Brice M<E9>alier <mealier_brice@yahoo.fr>
# Contributor: Michele Mocciola <mickele>
# ALARM: Fredrik Söderström <tirithen@gmail.com>
# - Adds armv7h arch
# - Adds subdir-objects to all Makefile.am
# - Removes all mmmx, msse, msse2, mfpmath=sse options from configure.ac
# - Patch src/Standard/Standard.cxx to use malloc.h over mm_malloc.h (like Android config) since it's not avaliable on the system
# - Adds optimization -O2 to CPPFLAGS
pkgname=opencascade
pkgver=6.9.0
pkgrel=1
pkgdesc="Open CASCADE Technology, 3D modeling & numerical simulation"
arch=('i686' 'x86_64' 'armv7h')
url="http://www.opencascade.org"
license=('custom')
depends=('tk' 'mesa' 'java-runtime' 'libxmu' 'ftgl' 'vtk')
makedepends=('java-environment')
source=("http://files.opencascade.com/OCCT/OCC_${pkgver}_release/$pkgname-${pkgver}.tgz" "env.sh" "opencascade.sh" "opencascade.conf")
md5sums=('ba87fe9f5ca47e3dfd62aad7223f0e7f'
'a96f28ee7f4273ae1771ee033a2a3af3'
'd9368b8d348ced3ec4462012977552d2'
'2924ecf57c95d25888f51071fdc72ad0')
build() {
cd "$srcdir/$pkgname-$pkgver"
# Get rid of "but option 'subdir-objects' is disabled" warnings
find . -name "Makefile.am" -print0 | xargs -0 sed -i '1 i\AUTOMAKE_OPTIONS = subdir-objects'
# fix for automake 1.13
sed -i -e 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.ac
# Remove mmmx msse msse2 mfpmath=sse from config files as not supported by arm
sed -i -e 's/ -\(mmmx\|msse2\|msse\|mfpmath=sse\)//g' configure.ac
# mm_malloc.h are missing on this system, define a constant in src/Standard/Standard.cxx to have it select malloc.h (same as Android)
STANDARD_FILENAME=src/Standard/Standard.cxx
sed -i '1 i\#ifndef __ARCH_ARMV7H__' $STANDARD_FILENAME
sed -i '2 i\#define __ARCH_ARMV7H__ 1' $STANDARD_FILENAME
sed -i '3 i\#endif' $STANDARD_FILENAME
sed -i -e 's/defined(__ANDROID__)/defined(__ANDROID__) || defined(__ARCH_ARMV7H__)/g' $STANDARD_FILENAME
# https://bbs.archlinux.org/viewtopic.php?id=182812
CPPFLAGS="$CPPFLAGS -O2"
./build_configure
./configure --disable-debug --enable-production \
--with-java-include=/usr/lib/jvm/default/include \
--with-vtk-library=/usr/lib/ --with-vtk-include=/usr/include/vtk-6.1/ \
--prefix=/opt/$pkgname
make
}
package() {
cd "$srcdir/$pkgname-$pkgver"
# no DESTDIR support so use prefix. This has to suffix match the prefix in ./configure
make prefix="$pkgdir/opt/$pkgname" install
cp -r src/UnitsAPI/ "${pkgdir}/opt/$pkgname/src"
install -D -m644 "${srcdir}/opencascade.conf" "${pkgdir}/etc/ld.so.conf.d/opencascade.conf"
install -D -m 755 "${srcdir}/opencascade.sh" "${pkgdir}/etc/profile.d/opencascade.sh"
install -m 755 "${srcdir}/env.sh" "${pkgdir}/opt/$pkgname"
install -dm755 "$pkgdir/usr/share/licenses/$pkgname/"
install -m644 LICENSE_LGPL_21.txt OCCT_LGPL_EXCEPTION.txt "$pkgdir/usr/share/licenses/$pkgname"
}
# vim:set ts=2 sw=2 et:
Code : Tout sélectionner
#!/bin/sh -f
export PATH="$PATH:$CASROOT/bin"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$CASROOT/lib"
export CSF_LANGUAGE=us
export MMGT_CLEAR=1
export CSF_EXCEPTION_PROMPT=1
export CSF_SHMessage="$CASROOT"/src/SHMessage
export CSF_MDTVTexturesDirectory="$CASROOT"/src/Textures
export CSF_XSMessage="$CASROOT"/src/XSMessage
export CSF_StandardDefaults="$CASROOT"/src/StdResource
export CSF_PluginDefaults="$CASROOT"/src/StdResource
export CSF_XCAFDefaults="$CASROOT"/src/StdResource
export CSF_StandardLiteDefaults="$CASROOT"/src/StdResource
export CSF_UnitsLexicon="$CASROOT"/src/UnitsAPI/Lexi_Expr.dat
export CSF_UnitsDefinition="$CASROOT"/src/UnitsAPI/Units.dat
export CSF_IGESDefaults="$CASROOT"/src/XSTEPResource
export CSF_STEPDefaults="$CASROOT"/src/XSTEPResource
export CSF_XmlOcafResource="$CASROOT"/src/XmlOcafResource
export CSF_GraphicShr="$CASROOT"/lib/libTKOpenGl.so
Code : Tout sélectionner
/opt/opencascade/lib
Code : Tout sélectionner
export CASROOT=/opt/opencascade
source /opt/opencascade/env.sh
Mais à chaque tentative j'aboutis à ce message :
Code : Tout sélectionner
libtool: link: (cd ".libs" && rm -f "libTKMath.so.0" && ln -s "libTKMath.so.0.0.0" "libTKMath.so.0")
libtool: link: (cd ".libs" && rm -f "libTKMath.so" && ln -s "libTKMath.so.0.0.0" "libTKMath.so")
/usr/bin/sed: can't read 6.9.0/src/opencascade-6.9.0/adm/lin/amk/TKernel/libTKernel.la: No such file or directory
libtool: error: '6.9.0/src/opencascade-6.9.0/adm/lin/amk/TKernel/libTKernel.la' is not a valid libtool archive
Makefile:2280 : la recette pour la cible « libTKMath.la » a échouée
make[3]: *** [libTKMath.la] Erreur 1
make[3] : on quitte le répertoire « /home/julien/Downloads/Fichiers conf opencascade 6.9.0/src/opencascade-6.9.0/adm/lin/amk/TKMath »
Makefile:445 : la recette pour la cible « all-recursive » a échouée
make[2]: *** [all-recursive] Erreur 1
make[2] : on quitte le répertoire « /home/julien/Downloads/Fichiers conf opencascade 6.9.0/src/opencascade-6.9.0/adm/lin/amk »
Makefile:479 : la recette pour la cible « all-recursive » a échouée
make[1]: *** [all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/julien/Downloads/Fichiers conf opencascade 6.9.0/src/opencascade-6.9.0 »
Makefile:409 : la recette pour la cible « all » a échouée
make: *** [all] Erreur 2
==> ERREUR : Une erreur s’est produite dans build().
Abandon...
Merci