Docs for compiling Panda 1.8?

I’m new to Panda3D. I am converting our OSX C++ work from another engine to Panda, and needed either the ability to do our development in XCode (so I can use my functional library from Bullet Physics) or do command line compiles with Panda Bullet included. I am considering moving to Python so the OSX-Bullet connection may be necessary anyway. Since this was only available in the development version. I decided to download and build at the command line. I’m not that fond of XCode anyway and saw no documentation on how to build Panda from source with XCode. In fact, all I’ve been successful at in building my demo code, is to use the 1.7.2 from command line, my XCode attempts were unsuccessful. 1.8 seems necessary and working at the command line is fine with me.

I did the cvs to pull the source (Part 1 according the docs I found) from sourceforge. The INSTALL-MK mentioned to get the Third-Party-Programs and samples from the panda site, but it didn’t say where to find them, and I was unable to. I attempted a makepanda/makepanda.py --everything --verbose based on a post I found here. This got me to 49% but then stopped on an error which another post had some general suggestions (removal of some compile flags and adding others for architecture), but didn’t say where to remove these flags. I found no makefile and didn’t think altering dtools directory source was something you would do to change the compile options.

What I’m wondering is if there is any documentation that describes this process, otherwise it appears I am just floundering and guessing. Hopefully there is also a reference to where things are, so I can get samples (for 1.8) and third party programs.

I have tried searching the forums for this, but the google search of the forum, rejects me after one page. That is a normal problem (it senses you as a bot) if you are on a web proxy such as many ISPs use. But the bottom line is, I can’t come up with a good link to real documentation for this process. The manual doesn’t seem to cover how to do it, locations aren’t listed on the download page, all of which is understandable since it’s not for the development version. Unfortunately, it seems that to proceed with Panda, I have to use the development version. Is there any basic document to get one started in the process?

Hmm, well, for building Panda itself, it will probably be much easier to use makepanda. I suppose it’s possible to build Panda using XCode, but no one’s ever done the work to set up an XCode project to do this; and I can’t recommend you doing that work, since that project would quickly get out of date with the next update to Panda.

So I’d recommend use makepanda to build Panda (or simply use the pre-built version from here), then use XCode to build your application referencing the Panda headers and libraries.

As to how, precisely, to use makepanda to build Panda, it’s really supposed to build out of the box, so we’ll need to know more about the specific problems you’re seeing. I’m not sure whether any thirdparty libraries are needed at all, but if they are, you can find a decent set in the 1.7.2 source (just take the panda3d/thirdparty directory and copy it to the 1.8.0 source).

makepanda does not use a makefile system; it is simply a Python program that invokes gcc directly to compile each file. When someone advises to edit compile flags in the makepanda system, they mean to hand-edit makepanda.py or makepandacore.py.

It’s unfortunate that Google search is so impractical. I usually use the normal php search for forum issues; it’s not as good as Google at keyword matching, but it does do a better job of sorting the results by date.

David

I think you answered all the questions, the process was rather simple, perhaps too simple to believe I was doing it right. Perhaps an instruction that says “You heard right, this really is all you have to do” would be in order :wink:.

The error was “error: ‘GetMainDevice’ was not declared in this scope” which you already said how to fix in another post. Editing the .py file was the missing information, I should be able to use your solution now. It was to force 32 bit I believe, but I’ll look it up again.

On XCode. I’d much rather be using Vim and avoiding the magic. Funny how time saving tools can waste time. Compiling for 1.7.2 was very easy at the command line with the instructions provided. I found that refreshing to not be stuck in an IDE. I’m glad the library compile is the same frankly. makepanda sounds great.

Thank you!

I take that back, it appears I don’t have it all down yet. I got stuck in the same place, even after making the makepanda.py changes for -D_LP64 and -arch x86_64 to go only 64 bit (that was the post I was referencing, it was at [Snow Leopard)). Now that I looked, it was on a completely different program.

The compile still stopped with this:

[ 48%] Building C++ object built/tmp/p3osxdisplay_composite1.o
g++ -ftemplate-depth-30 -fPIC -c -o built/tmp/p3osxdisplay_composite1.o -Ibuilt/tmp -Ibuilt/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -I/usr/X11R6/include -DMAKEPANDA= -Ipanda/src/osxdisplay -Wno-deprecated-declarations -arch x86_64 -pthread -msse2 -O2 -DBUILDING_PANDAGL panda/src/osxdisplay/p3osxdisplay_composite1.cxx
In file included from panda/src/osxdisplay/p3osxdisplay_composite1.cxx:4:
panda/src/osxdisplay/osxGraphicsStateGuardian.cxx: In member function ‘OSStatus osxGraphicsStateGuardian::build_gl(bool, bool, FrameBufferProperties&)’:
panda/src/osxdisplay/osxGraphicsStateGuardian.cxx:191: error: ‘GetMainDevice’ was not declared in this scope
Process exited with exit status 1 and signal code 0
Storing dependency cache.
Elapsed Time: 24 min 49 sec
The following command returned a non-zero value: g++ -ftemplate-depth-30 -fPIC -c -o built/tmp/p3osxdisplay_composite1.o -Ibuilt/tmp -Ibuilt/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -I/usr/X11R6/include -DMAKEPANDA= -Ipanda/src/osxdisplay -Wno-deprecated-declarations -arch x86_64 -pthread -msse2 -O2 -DBUILDING_PANDAGL panda/src/osxdisplay/p3osxdisplay_composite1.cxx
Build terminated.

Does this indicate that I have to build for 10.5 target on 10.6? Should I be forcing it to 32-bit instead of 64?

Yeah, build for 10.5 with 32-bits support only.

The problem is that Panda relies on the Carbon interface to open a window, which Apple has completely removed in the 64-bit libraries. So we have to build 32-bit only until someone can figure out the proper replacement for our Carbon calls.

The best way to force makepanda into 32-bits is to run Python itself in 32-bit mode. (No code changes required.)

David

Thank you, I got a successful compile though it’s lacking bullet physics, the third party zip I found didn’t include it. It would be highly unlikely that my version (for other engines) would be in the right directory tree to just include, plus I don’t build libs when using it for Irrlicht or Ogre and it appears those are necessary for the Panda implementation.

I had to move my /opt/local out of the path temporarily as someone else had mentioned. The macports for libcrypto and libssl were creating problems. I edited all -arch x86_64 to -arch i386 in makepanda.py, likewise all _LP64 to i386 plus commented out the ppc lines. Then set the environment variable as follows, on your advice (found it in the other thread).

export VERSIONER_PYTHON_PREFER_32_BIT=yes

I added -osxtarget 10.5 to the end of the makepanda/makepanda.py call. Then the process completed, but there were some warnings that didn’t look healthy (shown below).

It appears (though untested) that my only flaw here is the lack of a current third party library to match the 1.8 compilation. I’ve found various downloads in posts here, but they would be too old to have bullet in particular, perhaps other newer additions. Is there such a current download available or is this something I should be piecing together? I do at least need to address the bullet physics since that is the purpose of this exercise.

[ 32%] Building C++ object built/tmp/p3pnmimagetypes_composite1.o
g++ -ftemplate-depth-30 -fPIC -c -o built/tmp/p3pnmimagetypes_composite1.o -Ibuilt/tmp -Ibuilt/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -Ithirdparty/darwin-libs-a/tiff/include -Ithirdparty/darwin-libs-a/jpeg/include -Ithirdparty/darwin-libs-a/png/include -DMAKEPANDA= -Ipanda/src/pnmimagetypes -Ipanda/src/pnmimage -Wno-deprecated-declarations -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -arch i386 -pthread -msse2 -O2 -DBUILDING_PANDA panda/src/pnmimagetypes/p3pnmimagetypes_composite1.cxx
In file included from thirdparty/darwin-libs-a/jpeg/include/jpeglib.h:24,
                 from panda/src/pnmimagetypes/pnmFileTypeJPG.h:41,
                 from panda/src/pnmimagetypes/config_pnmimagetypes.cxx:21,
                 from panda/src/pnmimagetypes/p3pnmimagetypes_composite1.cxx:1:
thirdparty/darwin-libs-a/jpeg/include/jconfig.h:5:1: warning: "HAVE_PROTOTYPES" redefined
In file included from built/include/dtoolbase.h:109,
                 from built/include/pandabase.h:22,
                 from panda/src/pnmimagetypes/config_pnmimagetypes.h:18,
                 from panda/src/pnmimagetypes/config_pnmimagetypes.cxx:15,
                 from panda/src/pnmimagetypes/p3pnmimagetypes_composite1.cxx:1:
/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pyconfig.h:456:1: warning: this is the location of the previous definition
In file included from thirdparty/darwin-libs-a/jpeg/include/jpeglib.h:24,
                 from panda/src/pnmimagetypes/pnmFileTypeJPG.h:41,
                 from panda/src/pnmimagetypes/config_pnmimagetypes.cxx:21,
                 from panda/src/pnmimagetypes/p3pnmimagetypes_composite1.cxx:1:
thirdparty/darwin-libs-a/jpeg/include/jconfig.h:12:1: warning: "HAVE_STDLIB_H" redefined
In file included from built/include/dtoolbase.h:109,
                 from built/include/pandabase.h:22,
                 from panda/src/pnmimagetypes/config_pnmimagetypes.h:18,
                 from panda/src/pnmimagetypes/config_pnmimagetypes.cxx:15,
                 from panda/src/pnmimagetypes/p3pnmimagetypes_composite1.cxx:1:
/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/pyconfig.h:592:1: warning: this is the location of the previous definition
[ 32%] Building C++ object built/tmp/p3pnmimagetypes_composite2.o
g++ -ftemplate-depth-30 -fPIC -c -o built/tmp/p3pnmimagetypes_composite2.o -Ibuilt/tmp -Ibuilt/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -Ithirdparty/darwin-libs-a/tiff/include -Ithirdparty/darwin-libs-a/jpeg/include -Ithirdparty/darwin-libs-a/png/include -DMAKEPANDA= -Ipanda/src/pnmimagetypes -Ipanda/src/pnmimage -Wno-deprecated-declarations -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -arch i386 -pthread -msse2 -O2 -DBUILDING_PANDA panda/src/pnmimagetypes/p3pnmimagetypes_composite2.cxx
In file included from panda/src/pnmimagetypes/p3pnmimagetypes_composite2.cxx:2:
panda/src/pnmimagetypes/pnmFileTypeTIFF.cxx: In constructor ‘PNMFileTypeTIFF::Reader::Reader(PNMFileType*, std::istream*, bool, std::string)’:
panda/src/pnmimagetypes/pnmFileTypeTIFF.cxx:538: warning: comparison is always false due to limited range of data type
In file included from panda/src/pnmimagetypes/p3pnmimagetypes_composite2.cxx:3:
panda/src/pnmimagetypes/pnmFileTypePNM.cxx: In function ‘void pgm_readpgminitrest(std::istream*, int*, int*, gray*)’:
panda/src/pnmimagetypes/pnmFileTypePNM.cxx:261: warning: comparison is always false due to limited range of data type
panda/src/pnmimagetypes/pnmFileTypePNM.cxx: In function ‘void pgm_writepgminit(std::ostream*, int, int, gray, int)’:
panda/src/pnmimagetypes/pnmFileTypePNM.cxx:552: warning: comparison is always false due to limited range of data type
panda/src/pnmimagetypes/pnmFileTypePNM.cxx:559: warning: comparison is always false due to limited range of data type
panda/src/pnmimagetypes/pnmFileTypePNM.cxx: In function ‘void ppm_writeppminit(std::ostream*, int, int, pixval, int)’:
panda/src/pnmimagetypes/pnmFileTypePNM.cxx:573: warning: comparison is always false due to limited range of data type
panda/src/pnmimagetypes/pnmFileTypePNM.cxx:580: warning: comparison is always false due to limited range of data type
panda/src/pnmimagetypes/pnmFileTypePNM.cxx: In function ‘void pgm_writepgmrow(std::ostream*, gray*, int, gray, int)’:
panda/src/pnmimagetypes/pnmFileTypePNM.cxx:809: warning: comparison is always false due to limited range of data type
panda/src/pnmimagetypes/pnmFileTypePNM.cxx: In function ‘void ppm_writeppmrow(std::ostream*, pixel*, int, pixval, int)’:
panda/src/pnmimagetypes/pnmFileTypePNM.cxx:896: warning: comparison is always false due to limited range of data type
In file included from panda/src/pnmimagetypes/p3pnmimagetypes_composite2.cxx:6:
panda/src/pnmimagetypes/pnmFileTypeSGIWriter.cxx: In member function ‘virtual bool PNMFileTypeSGI::Writer::write_header()’:
panda/src/pnmimagetypes/pnmFileTypeSGIWriter.cxx:157: warning: comparison is always true due to limited range of data type

and

[ 48%] Building Objective-C++ object built/tmp/p3osxdisplay_osxGraphicsWindow.o
g++ -ftemplate-depth-30 -fPIC -c -o built/tmp/p3osxdisplay_osxGraphicsWindow.o -Ibuilt/tmp -Ibuilt/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -I/usr/X11R6/include -DMAKEPANDA= -Ipanda/src/osxdisplay -Wno-deprecated-declarations -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 -arch i386 -pthread -msse2 -O2 -DBUILDING_PANDAGL panda/src/osxdisplay/osxGraphicsWindow.mm
In file included from panda/src/osxdisplay/osxGraphicsWindow.mm:26:
built/include/glgsg.h:77:1: warning: "GL_GLEXT_VERSION" redefined
In file included from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl.h:65,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:9,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:140,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:13,
                 from panda/src/osxdisplay/osxGraphicsWindow.mm:18:
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/glext.h:181:1: warning: this is the location of the previous definition
In file included from built/include/glgsg.h:86,
                 from panda/src/osxdisplay/osxGraphicsWindow.mm:26:
built/include/panda_glext.h:3142:1: warning: "GL_LINES_ADJACENCY_EXT" redefined
In file included from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl.h:65,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:9,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:140,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:13,
                 from panda/src/osxdisplay/osxGraphicsWindow.mm:18:
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/glext.h:1492:1: warning: this is the location of the previous definition
In file included from built/include/glgsg.h:86,
                 from panda/src/osxdisplay/osxGraphicsWindow.mm:26:
built/include/panda_glext.h:3143:1: warning: "GL_LINE_STRIP_ADJACENCY_EXT" redefined
In file included from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl.h:65,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:9,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:140,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:13,
                 from panda/src/osxdisplay/osxGraphicsWindow.mm:18:
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/glext.h:1493:1: warning: this is the location of the previous definition
In file included from built/include/glgsg.h:86,
                 from panda/src/osxdisplay/osxGraphicsWindow.mm:26:
built/include/panda_glext.h:3144:1: warning: "GL_TRIANGLES_ADJACENCY_EXT" redefined
In file included from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl.h:65,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:9,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:140,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:13,
                 from panda/src/osxdisplay/osxGraphicsWindow.mm:18:
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/glext.h:1494:1: warning: this is the location of the previous definition
In file included from built/include/glgsg.h:86,
                 from panda/src/osxdisplay/osxGraphicsWindow.mm:26:
built/include/panda_glext.h:3145:1: warning: "GL_TRIANGLE_STRIP_ADJACENCY_EXT" redefined
In file included from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/gl.h:65,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSOpenGL.h:9,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h:140,
                 from /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:13,
                 from panda/src/osxdisplay/osxGraphicsWindow.mm:18:
/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Headers/glext.h:1495:1: warning: this is the location of the previous definition

The warnings are fine, you can ignore them. E-mail me if you want the Bullet thirdparty package, and I’ll send it to you.

Thank you, it worked and bullet is built. Before testing, the day job beckons.

I apparently don’t quite have it yet. The build finished correctly, so I ran the

makepanda/makepanda --everything --verbose --osxtarget 10.5 --install

and it generated the dmg in my panda root. I ran that dmg and the /Developer/Panda3d/lib was populated with my 1.8 libraries plus the ln statements took effect based on the ls of the generic name (showed the link to the 1.8 name).

When I went to test with my demo program compiled thusly:

g++ -c helloworld.cpp -o helloworld.o -fPIC -O2 -arch i386 -I/usr/include/Python2.5 -I/Developer/Panda3d/include
g++ helloworld.o -o helloworld -fPIC -arch i386 -L/Developer/Panda3d/lib -lp3framework -lpanda -lpandafx -lpandaexpress -lp3dtoolconfig -lp3dtool -lp3pystub -lp3direct

I received the following error on execution:

dyld: Library not loaded: /usr/local/lib/libavformat.dylib
  Referenced from: /Developer/Panda3D/lib/libpanda.1.8.dylib
  Reason: image not found
Trace/BPT trap

The libavformat.dylib is in the /Developer/Panda3D/lib but not in the /usr/local/lib (I have almost nothing in there). I must be missing something in the build and defaulting to a Linux or BSD layout in some case?

Edit: I should have stated that by doing ln -s on each dylib, I did get around this problem, but I’m assuming that I did something basically incorrect in the build that is causing it to look in the wrong lib.

I don’t know if this applies to the current problem. Maybe the following information is useful? The wxPython people have been examining the problem.


2.9.1.1
14-Oct-2010

Probably the most notable change in this release is the addition of the OSX-Cocoa build, including a 64-bit architecture in the fat binaries. The Cocoa port requires at least OSX 10.5, and the Carbon port requires 10.4 or better. There are still some rough edges in the Cocoa port, but a lot does work and works well. ...

...

2.9.0.1
22-Jan-2010

...

NOTE: When using the stock Apple Python on OS X 10.6 it will default to running in 64-bit mode if your machine is a 64-bit architecture. wxPython is still using Carbon on OS X which is 32-bit only, so there is no 64-bit personality in the universal binaries and it will raise an exception when you import wx. wxPython will be switching to Cocoa soon, but in in the meantime you can force the stock Python to run in 32-bit mode by running this command in a Terminal session:

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes

http://wxpython.org/recentchanges.php

@eagletree: are you sure you built with the provided thirdparty packages and that it didn’t pick up an ffmpeg library from your system?
If it correctly picked up the right thirdparty packages, the installer should be automatically fixing absolute paths to relative paths and making the correct symlinks.

Your makepanda command isn’t quite correct. --install is not a valid option. You meant you used --installer, right?

@Andre_Mikulec: Yes, they replaced Carbon with the newer Cocoa framework. It is just very hard to integrate Cocoa into our infrastructure, especially as Cocoa is so Objective-C-centered, and wants high-level control over the entire application environment.

Curious, I did use --install and it built the installer dmg. I just scrolled back to the messages. Here were the applicable lines in the verbose printout.

mkdir -p dstroot/Panda3D/Panda3D.mpkg/Contents/Packages/
mkdir -p dstroot/Panda3D/Panda3D.mpkg/Contents/Resources/en.lproj/
/Developer/usr/bin/packagemaker --info /tmp/Info_plist --version 1.8.0 --out dstroot/Panda3D/Panda3D.mpkg/Contents/Packages/base.pkg --target 10.4 --domain system --root dstroot/base/ --no-relocate --scripts dstroot/scripts/base
/Developer/usr/bin/packagemaker --info /tmp/Info_plist --version 1.8.0 --out dstroot/Panda3D/Panda3D.mpkg/Contents/Packages/tools.pkg --target 10.4 --domain system --root dstroot/tools/ --no-relocate
/Developer/usr/bin/packagemaker --info /tmp/Info_plist --version 1.8.0 --out dstroot/Panda3D/Panda3D.mpkg/Contents/Packages/headers.pkg --target 10.4 --domain system --root dstroot/headers/ --no-relocate
/Developer/usr/bin/packagemaker --info /tmp/Info_plist --version 1.8.0 --out dstroot/Panda3D/Panda3D.mpkg/Contents/Packages/uninstall16.pkg --target 10.4 --domain system --root dstroot/uninstall16/ --no-relocate --scripts dstroot/scripts/uninstall16
/Developer/usr/bin/packagemaker --info /tmp/Info_plist --version 1.8.0 --out dstroot/Panda3D/Panda3D.mpkg/Contents/Packages/pythoncode.pkg --target 10.4 --domain system --root dstroot/pythoncode/ --no-relocate
/Developer/usr/bin/packagemaker --info /tmp/Info_plist --version 1.8.0 --out dstroot/Panda3D/Panda3D.mpkg/Contents/Packages/samples.pkg --target 10.4 --domain system --root dstroot/samples/ --no-relocate
rm -f /tmp/Info_plist
hdiutil create Panda3D-rw.dmg -srcfolder dstroot/Panda3D

I forced the links as follows:

ln -s /Developer/Panda3D/lib/libavcodec.dylib /usr/local/lib/libavcodec.dylib
ln -s /Developer/Panda3D/lib/libavutil.dylib /usr/local/lib/libavutil.dylib
ln -s /Developer/Panda3D/lib/libswscale.dylib /usr/local/lib/libswscale.dylib
ln -s /Developer/Panda3D/lib/libfftw.2.dylib /usr/local/lib/libfftw.2.dylib
ln -s /Developer/Panda3D/lib/librfftw.2.dylib /usr/local/lib/librfftw.2.dylib

After that, all worked correctly.

Ok, I think I just figured it out. I must have run some portion of the build as root (I don’t use sudo and may have had to use root to move the macports out of path, forgot to exit), the creation of some links must have been stopped by permissions. The libraries in question are owned by root while the vast majority of panda libraries are owned by my username. They were all created within 4 minutes of one another so I’m not sure how I ended up doing that. I’m also not clear on the importance of /usr/local since that’s unusual on OSX. But it all works. I have written a procedure if anyone else needs it.

I am curious on how it would be possible to use the wrong option and still build the installer :wink:. But since it worked… I’m not too curious :wink:.

Thanks for all the help. Others please don’t hesitate to pm or ask if you want the step-by-step I used.