martes, 12 de octubre de 2010

HDK in the Mac. Using hcustom with Leopard

Well, I have recently tried to compile some custom SOPs in my Mac.
No luck at the beggining so I begin to as in the Houdini Mailing list, Odforce, but no luck.
In my first try I got these errors:
Making SOP_Flatten.o and
/Users/pablo/Library/Preferences/houdini/11.0/dso/SOP_Flatten.dylib
from SOP_Flatten.C
cc1plus: warning: command line option "-fobjc-gc-only" is valid for
ObjC/ObjC++ but not for C++
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:
In function ‘int32 SYS_AtomicImpl::test_and_add(int32*, int)’:
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:345:
error: ‘__sync_fetch_and_add’ was not declared in this scope
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:
In function ‘int32 SYS_AtomicImpl::compare_and_swap(int32*, int32,
int32)’:
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:351:
error: ‘__sync_val_compare_and_swap’ was not declared in this scope
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:
In function ‘int64 SYS_AtomicImpl::test_and_set64(int64*, int64)’:
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:358:
error: ‘__sync_lock_test_and_set’ was not declared in this scope
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:
In function ‘int64 SYS_AtomicImpl::test_and_add64(int64*, int64)’:
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:365:
error: ‘__sync_fetch_and_add’ was not declared in this scope
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:
In function ‘int64 SYS_AtomicImpl::compare_and_swap64(int64*, int64,
int64)’:
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:372:
error: ‘__sync_val_compare_and_swap’ was not declared in this scope
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:
In function ‘void SYS_AtomicImpl::store(int32*, int32,
SYS_MemoryOrder)’:
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:389:
error: ‘__sync_synchronize’ was not declared in this scope
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:399:
error: ‘__sync_lock_release’ was not declared in this scope
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:405:
error: ‘__sync_lock_test_and_set’ was not declared in this scope
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:
In function ‘int32 SYS_AtomicImpl::load(const int32*,
SYS_MemoryOrder)’:
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:428:
error: ‘__sync_synchronize’ was not declared in this scope
/Library/Frameworks/Houdini.framework/Resources/toolkit/include/SYS/SYS_AtomicImpl.h:435:
error: ‘__sync_val_compare_and_swap’ was not declared in this scope
Compile failed


I am using Mac OS X 10.5.X, Leopard. So asking to SESI seems I have some problems with the gcc version.
I have been using Xcode 3.0 which uses gcc 4.0.1, whereas Houdini is compiled against gcc 4.2.
So I installed Xode 3.1.3, which is the latest version for Leopard and includes gcc-4.2.
You can grab it from here:
http://connect.apple.com/cgi-bin/WebObjects/MemberSite.wo/wa/getSoftware?bundleID=20414
Now, how to use it, you can go to the dirty solution, removing cd gcc links in /usr/bin and make new ones pointing to gcc-4.2:

cd /usr/bin
rm cc gcc c++ g++
ln -s gcc-4.2 cc
ln -s gcc-4.2 gcc
ln -s c++-4.2 c++
ln -s g++-4.2 g++

Or the clean solution, don't touch the system just add some environment variables:

# Use GCC 4.2 rather tha GCC 4.0
export CC="/usr/bin/gcc-4.2"
export CPP="/usr/bin/cpp-4.2"
export CXX="/usr/bin/g++-4.2"
# Use GCC 4.2 for HDK
export HOUDINI_CC=$CXX

I put the text above in my ~/.bashrc
The first thre variables are for the usual GNU tools.
The last one is used by hcompile, the script called by hcustom to compile your DSO.
Now you can try hcustom and see your DSOs happily compiled.
Happy hacking!

lunes, 5 de abril de 2010

I´m dad!!!


Hi all.

Last 28th of March my daughter, Ines was born!

Both, Ines and mum are doing well.

A new life begins .......


domingo, 14 de marzo de 2010

Iron Man 2 - second trailer is out!

Hi there.
At least after long hours the movie is almost done and the secon trailer was showed in the last Oscars night.
So here it is I hope you like, and specially if you are a fan of the saga

http://trailers.apple.com/trailers/paramount/ironman/

At Dneg we have been working in the sequence between Whiplash and Ironman.
I was mainly doing tesla and sparks fx.
Before this project I supposed this kind of effects should be easy, actually I think doing electricity fx phenomena to look real and credible is really hard.
Cheers!