1.5.2 on OS X, ppremake aclocal error

I’m trying to follow the Edalytical tutorial (http://www.edalytical.com/articles/building_panda3d_on_mac_os_x_leopard.html) on OS X 10.5.4 with Panda 1.5.2 (leaving out the patches, for now), but I run into trouble building ppremake. On the aclocal step, I get the following error:

acinclude.m4:1: warning: underquoted definition of AC_HEADER_IOSTREAM
acinclude.m4:1:   run info '(automake)Extending aclocal'
acinclude.m4:1:   or see http://sources.redhat.com/automake/automake.html#Extending-aclocal

I’ve successfully followed the rest of the steps up through running genPyCode by following Hypnos advice (https://discourse.panda3d.org/viewtopic.php?t=4468), but when I run genPyCode I receve the following error:

$ genPyCode
Importing code library: libpandaexpress
  Found extensions for class: Ramfile
  Found extensions for class: StreamReader
  Found extensions for class: HTTPChannel
Importing code library: libpanda
Traceback (most recent call last):
  File "/usr/local/panda/bin/genPyCode.py", line 20, in <module>
    DoGenPyCode.run()
  File "/usr/local/panda/lib/direct/ffi/DoGenPyCode.py", line 298, in run
    generateNativeWrappers()
  File "/usr/local/panda/lib/direct/ffi/DoGenPyCode.py", line 259, in generateNativeWrappers
    exec('import %s as module' % moduleName)
  File "<string>", line 1, in <module>
ImportError: dlopen(/usr/local/panda/lib/libpanda.so, 2): Symbol not found: _fftw_complete_twiddle
  Referenced from: /usr/local/panda/lib/libmathutil.dylib
  Expected in: dynamic lookup

My fftCompressor.cxx and Config.pp look the way Hypnos suggests in the thread I linked above above.

Any thoughts?

Right, the error message you are getting is because you need to link to another library. It is explained on the comments of the guide.
Scroll down to the bottom of the page and you will find:

PS. Also, the guide is missing a step. Before running genPyCode, you also need to cd into the pandatool directory and make && make install it.

Okay, I completely deleted and remade Panda from scratch following your instructions, including building and installing pandatool. My genPyCode output looks like this:

$ genPyCode
Importing code library: libpandaexpress
  Found extensions for class: Ramfile
  Found extensions for class: StreamReader
  Found extensions for class: HTTPChannel
Importing code library: libpanda
  Found extensions for class: NodePath
  Found extensions for class: Mat3
  Found extensions for class: NodePathCollection
  Found extensions for class: VBase3
  Found extensions for class: VBase4
Importing code library: libpandaphysics
Importing code library: libdirect
:interrogatedb(warning): Classes Http_Request and Socket_TCP share the same TypeHandle value (42); check class definitions.
  Found extensions for class: CInterval
Importing code library: libpandafx
Importing code library: libpandaode
  Found extensions for class: OdeGeom
  Found extensions for class: OdeSpace
  Found extensions for class: OdeJoint
  Found extensions for class: OdeBody

However, when I try “>>> import direct.directbase.DirectStart” as per the bottom of the Edalytical tutorial, or run any of the sample code:

$ python
Python 2.5.1 (r251:54863, Jan 17 2008, 19:35:17) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import direct.directbase.DirectStart
DirectStart: Starting the game.
:interrogatedb(warning): Classes Http_Request and Socket_TCP share the same TypeHandle value (42); check class definitions.
Warning: DirectNotify: category 'Interval' already exists
:display: loading display module: libpandagl.dylib
:display: Unable to load: No error.
Known pipe types:
(all display modules loaded.)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/panda/lib/direct/directbase/DirectStart.py", line 4, in <module>
    ShowBase.ShowBase()
  File "/usr/local/panda/lib/direct/showbase/ShowBase.py", line 241, in __init__
    self.openDefaultWindow(startDirect = False, props=props)
  File "/usr/local/panda/lib/direct/showbase/ShowBase.py", line 679, in openDefaultWindow
    self.openMainWindow(*args, **kw)
  File "/usr/local/panda/lib/direct/showbase/ShowBase.py", line 754, in openMainWindow
    self.openWindow(*args, **kw)
  File "/usr/local/panda/lib/direct/showbase/ShowBase.py", line 521, in openWindow
    self.makeDefaultPipe()
  File "/usr/local/panda/lib/direct/showbase/ShowBase.py", line 464, in makeDefaultPipe
    "No graphics pipe is available!\n"
  File "/usr/local/panda/lib/direct/directnotify/Notifier.py", line 122, in error
    raise exception(errorString)
StandardError: No graphics pipe is available!
Your Config.prc file must name at least one valid panda display
library via load-display or aux-display.

I have a 20_panda.prc in my /usr/local/panda dir, but no Config.prc…

You need to create a Config.prc and put the plugin-path definition in it. This should name the directory that contains libpandagl.so and whatnot.

David

Okay, one step further along. Thank you drwr!

I ended up fixing a few other config-related problems that appeared when I tried to run the samples. In case anyone hits this batch of problems again, here’s the current contents of my Config.prc file, which makes the samples I’ve tried (from ./panda3d-1.5.2/samples/) work in OS X:

plugin-path /usr/local/panda/lib
default-model-extension .egg.pz
model-path .