Llink:Compiling: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
== Compiling Instructions == | == Compiling Instructions == | ||
Line 71: | Line 68: | ||
=== Known Compiling Issues === | === Known Compiling Issues === | ||
The main binary is linked against '''libdvdcss''' if requested, even though it need not be. You can omit "-ldvdcss" on the linking line if it affects you. | The main binary is linked against '''libdvdcss''' if requested, even though it need not be. You can omit "-ldvdcss" on the linking line of llink if it affects you. | ||
On C200, if you compile -static, it will product the error: | On C200, if you compile -static, it will product the error: |
Revision as of 02:30, 13 November 2009
Compiling Instructions
When compiling llink you need to chose if you want to use OpenSSL, libdvdread and libdvdcss. Generally we have no reason to use SSL with link so I will skip this compile time step.
Unix, OsX and other native compiles
The default should work.
# ./configure --without-openssl # make # file src/llink
The file command is not necessary, but it shows you where we expect the binary to end up.
# ./configure --without-openssl # make
If you want to build libdvdcss in statically (so there is just one binary, no shared library dependencies)
# cd libdvdcss-1.2.10 # ./configure --enable-static # make # cd ../ # cd llink-2.2.0 # ./configure --without-openssl --with-dvdcss-tree=`pwd`/../libdvdcss-1.2.10/ # make
Windows
Download Visual Devstudio C++ 2010 from Microsoft and install. Download source package, and load the llink.vcproj inside "win32/" directory. Change the default project from libdirlist to llink and hit compile.
Cross Compile
For example when compiling for the PCH A-100, you download the toolchain that applies to your arch. In this case, it installs into /usr/local/mips/ with a gcc binary named as /usr/local/mips/bin/mipsel-linux-gcc.
First make sure your PATH is updated so that it can find the executable.
# export PATH=$PATH:/usr/local/mips/bin/ # which mipsel-linux-gcc /usr/local/mips/bin/mipsel-linux-gcc
Great. If you want to have libdvdcss we need to compile that first. If you do not, you can skip this step.
# cd src/libdvdcss-1.2.10/ # ./configure --host=mipsel-linux-uclibc --enable-static # make # file src/.libs/libdvdcss.* src/.libs/libdvdcss.a: current ar archive src/.libs/libdvdcss.so.2.0.8: ELF 32-bit LSB shared object, MIPS, version 1 (SYSV), not stripped (a few other files, but at least one shows its compiled as MIPS)
Note that we have to use the full path /home/lundman/src/ to get to the libdvdcss-1.2.10/src includes.
Compiling llink. Now it is time to compile llink itself. The version number might change of course.
# cd src/llink-2.2.0/ # ./configure --host=mipsel-linux --enable-static --without-openssl --with-dvdcss-tree=/home/lundman/src/libdvdcss-1.2.10/ # make # file src/llink src/llink: ELF 32-bit LSB executable, MIPS, version 1 (SYSV), statically linked, not stripped
Naturally, if you do not want libdvdcss go with the shorter line:
# ./configure --host=mipsel-linux --enable-static --without-openssl # make
Known Compiling Issues
The main binary is linked against libdvdcss if requested, even though it need not be. You can omit "-ldvdcss" on the linking line of llink if it affects you.
On C200, if you compile -static, it will product the error:
../sysdeps/unix/sysv/linux/ia64/getpagesize.c:35: __getpagesize: Assertion `_rtld_global_ro._dl_pagesize != 0' failed.
So don't compile statically on C200.
Some systems get:
: undefined reference to `pthread_mutex_init'
and similar errors, change directory into the undvd directory, and copy'paste the final linking line and add "-lpthread" to it. This will be fixed in future.