Any one up for OSX work.

Hi David,

I am trying to get the OS X version to run from a clean CVS trunk (i have backed-up my previous version). you did a lot of changes, and i rather try to get the current CVS trunk to run correctly on OS X and create a patch from there instead going from a 2 month old version.

currently I hit a wall as soon as i try to make dtool.

cd ./src/dtoolbase && make all
cc   -c -o Opt2-osx/dtoolbase_dlmalloc.o -I. -I/Users/kaweh/Projects/panda3d/dtool   -D_DEBUG -Wall -g -O2 -fPIC dlmalloc.c
cc   -c -o Opt2-osx/dtoolbase_lookup3.o -I. -I/Users/kaweh/Projects/panda3d/dtool   -D_DEBUG -Wall -g -O2 -fPIC lookup3.c
CC   -c -o Opt2-osx/dtoolbase_indent.o -I. -I/Users/kaweh/Projects/panda3d/dtool   -D_DEBUG -Wall -g -O2 -fPIC indent.cxx
CC   -c -o Opt2-osx/dtoolbase_dtoolbase_composite1.o -I. -I/Users/kaweh/Projects/panda3d/dtool   -D_DEBUG -Wall -g -O2 -fPIC dtoolbase_composite1.cxx
CC   -c -o Opt2-osx/dtoolbase_dtoolbase_composite2.o -I. -I/Users/kaweh/Projects/panda3d/dtool   -D_DEBUG -Wall -g -O2 -fPIC dtoolbase_composite2.cxx
CC -shared  -o Opt2-osx/libdtoolbase.dylib Opt2-osx/dtoolbase_dlmalloc.o Opt2-osx/dtoolbase_lookup3.o Opt2-osx/dtoolbase_indent.o Opt2-osx/dtoolbase_dtoolbase_composite1.o Opt2-osx/dtoolbase_dtoolbase_composite2.o -L/usr/local/panda/lib 
powerpc-apple-darwin8-gcc-4.0.1: unrecognized option '-shared'
/usr/bin/ld: Undefined symbols:
_main
std::ios_base::Init::Init()
std::ios_base::Init::~Init()
std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char)
___gxx_personality_v0
std::cerr
std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
collect2: ld returned 1 exit status
make[1]: *** [Opt2-osx/libdtoolbase.dylib] Error 1
make: *** [dtoolbase] Error 2

i also know what the problem is. if we look at dtool/scr/dtoolbase/Makefile lines 37-38 it says:

Opt2-osx/libdtoolbase.dylib : $(libdtoolbase_so) 
	 CC -shared  -o Opt2-osx/libdtoolbase.dylib $(libdtoolbase_so) -L/usr/local/panda/lib

now this is wrong on OS X. to link correctly it needs to say

Opt2-osx/libdtoolbase.dylib : $(libdtoolbase_so) 
	 g++ -dynamiclib  -o Opt2-osx/libdtoolbase.dylib $(libdtoolbase_so) -L/usr/local/panda/lib

i assume this is because ppremake is using the unix template for generating the Makefile… i don’t see a OS X template. calling CC on C++ code is also odd as far as i can tell.

do you know which *.pp file i should try to fix and see if i can get the current clean CVS trunk to build correctly?

thanks,
kaweh

ps: this is my current local LOCAL_PPREMAKE_CONFIG

#define OPTIMIZE 2

#define HAVE_GL 1

#define HAVE_CG 1
#define HAVE_CGGL 1

#define HAVE_MAYA 1
#define MAYA_LOCATION /Applications/Alias/maya7.0/devkit

#define INSTALL_PYTHON_SOURCE 1
#define HAVE_PYTHON 1
#define PYTHON_FRAMEWORK /Library/Frameworks/Python.framework

#define ALTERNATIVE_MALLOC
//#define DO_MEMORY_USAGE

#define ZLIB_IPATH /opt/local/include
#define ZLIB_LPATH /opt/local/lib

#define JPEG_IPATH /opt/local/include
#define JPEG_LPATH /opt/local/lib

#define PNG_IPATH /opt/local/include
#define PNG_LPATH /opt/local/lib

#define TIFF_IPATH /opt/local/include
#define TIFF_LPATH /opt/local/lib

#define FFMPEG_IPATH /opt/local/include/ffmpeg
#define FFMPEG_LPATH /opt/local/lib

#define HAVE_FMODEX 1
#define FMOD_IPATH /Users/kaweh/Projects/fmod/api/inc
#define FMOD_LPATH /Users/kaweh/Projects/fmod/api/lib

#define PRC_PATH_ENVVARS CFG_PATH ETC_PATH 
//#define DEFAULT_PATHSEP : :