Here is another post on the cross-compile series for DroboFS.
Introduction: Why libtorrent?
This is another required library for rtorrent.
Overall compiling complexity: Medium.
Step 1: Background info
To be able to make use of this post, you need a VM configured as indicated in this post.
Step 2: Enter the cross-compiling environment
See step 2 of this post to see instructions on how to enter the chroot environment.
Step 3: Dependencies
Step 4: Get the source code
openssl’s website: http://libtorrent.rakshasa.no/
Direct link: http://libtorrent.rakshasa.no/downloads/libtorrent-0.12.6.tar.gz
Make sure that you are in the folder /root/code, then type:
tar zxf libtorrent-0.12.6.tar.gz
Step 5: Configuration
Here is why this is considered a “medium” complexity compile. libtorrent requires a special configure command:
PKG_CONFIG_PATH=/usr/arm/lib/pkgconfig ./configure --host=arm-none-linux-gnueabi --prefix=/usr/arm --enable-aligned
Explanation: the configuration for cross-compilation requires overrides for the PKGCONFIG location.
This should return no errors. If it does, you have to check if you have all required packages in your chroot (although, if you have been following the dependencies, you should have all of them). For more info, check here.
Step 6: Compiling
Within the folder /root/code/libtorrent-0.12.6:
Again, there should be no errors. If any errors are reported, make sure you performed steps 3 and 4 correctly. If you still have errors, make sure that the VM is properly configured (e.g. like I did the first time around, when I got the wrong toolchain, or forgot to ‘export’ the proper compiler flags). Also, libtorrent can be picky about dependencies. Check here for more info.
Step 6: Installing
As simple as it gets:
…which will place the compiled library under /usr/arm.
Then we package the whole /usr/arm and copy it over to the DroboFS, as indicated on step 9 here.
Now you can cross-compile any application that uses libtorrent, since the required headers are libraries are present in /usr/arm both in the VM and on the Drobo.