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 : :