User talk:Mucki.at

From WiiBrew
Jump to navigation Jump to search

Collada

I am trying to build COLLADA DOM since it is open source and also from SONY (the main creator of collada) so it should be very complete.

Extra libs

COLLADA DOM needs pcre and libxml2. boost::filesystem is optional (which is good since i already know it doesn't build).

libxml2

Package: libxml2-2.7.2.tar.gz

I used the following line to configure:

 CC=powerpc-gekko-gcc ./configure --host=powerpc-gekko-none

building ....

Ok, that did not work, since it tries to use networking. Trying to go for a minimal build:

 CC=powerpc-gekko-gcc ./configure --host=powerpc-gekko-none --enable-shared=false --enable-static=true \
   --without-pic --without-c14n --without-catalog --without-debug --without-docbook --without-ftp \
   --without-history --without-html --without-http --without-iconv --without-mem-debug --with-minimum \
   --without-output --without-pattern --without-push --without-python --without-reader --without-regexps \
   --without-run-debug --without-sax1  --without-schematron --without-treads --without-writer --without-modules \
   --without-zlib --prefix=${DEVKITPRO}/libxml2

building ...

One of the testprograms (testrecurse.c) uses globs wich are unavailable. I just replaced the file with the following stub:

   int main(void) { return 0; }

After this modification it builds and installs fine.

Ok, seems we need the 'reader' and 'writer' interface for collada dom

 CC=powerpc-gekko-gcc ./configure --host=powerpc-gekko-none --enable-shared=false --enable-static=true \
   --without-pic --without-c14n --without-catalog --without-debug --without-docbook --without-ftp \
   --without-history --without-html --without-http --without-iconv --without-mem-debug --with-minimum \
   --without-output --without-pattern --without-push --without-python --without-regexps \
   --without-run-debug --without-sax1  --without-schematron --without-treads --with-reader --with-writer --without-modules \
   --without-zlib --prefix=${DEVKITPRO}/libxml2

this also needs some more fixes in the testing programs

pcre

Package: pcre-7.8.tar.gz

 CC=powerpc-gekko-gcc CXX=powerpc-gekko-g++ ./configure --host=powerpc-gekko-none --enable-shared=false \
   --enable-static=true --prefix=${DEVKITPRO}/pcre --disable-pcregrep-libz --disable-pcregrep-libbz2 \
   --disable-pcretest-libreadline --without-picregrep-libz --disable-pcregrep-libbz2 --disable-pcretest-libreadline \
   --without-pic --disable-cpp

again the test program needs fixes:

line 904 change to:

#if defined(_WIN32) || defined(WIN32) || defined(__PPC__)

about line 160 add:

#define clock() 0


hmm, collada-dom needs the cpp interface. this was problematic before. trying again ...

 CC=powerpc-gekko-gcc CXX=powerpc-gekko-g++ ./configure --host=powerpc-gekko-none --enable-shared=false \
   --enable-static=true --prefix=${DEVKITPRO}/pcre --disable-pcregrep-libz --disable-pcregrep-libbz2 \
   --disable-pcretest-libreadline --without-picregrep-libz --disable-pcregrep-libbz2 --disable-pcretest-libreadline

adding the wii rules to the makefile helped.

COLLADA DOM

This lib uses a custom makefile buildsystem. I made some changes, basically cloning the "ps3" os settings to a new "wii" os.

  • make/common.mk : set compiler for wii
  • make/dom.mk: set to build static lib only for wii, set to include previously built libxml2 and pcre
  • make/domTest.mk: set to link .a instead of .so

after fixing libxml2 and pcre it compiled and installed

Bullet

Notes on building bullet

  • edit Makefile.am to remove all but src subdir, the extra stuff won't compile for the wii anyway
  • use autoghen.sh to setup the build as normal
  • configure as follows:
CC=powerpc-gekko-gcc CXX=powerpc-gekko-g++ ./configure \
--host=powerpc-gekko-none --enable-shared=false \
--enable-static=true --prefix=${DEVKITPRO}/bullet \
--without-x --without-mesa
  • add wii rules to Makefile
  • src/BulletCollision/BroadphaseCollision/btDbvt.h:
    • line 101: remove memory.h include

well ... it compiles fine ... install does not work, but that can be fixed by manually copying.