Interrogate problems w/ ppremake & VRPN

I am trying to compile Panda using VS 2008 .NET and have fixed quite a few problems so far but I am now running in to one I can’t seem to figure out and that is when it gets to doing the interrogate for VRPN it fails for some reason. I just barely started messing with Panda so I am not very familiar with the build environment used for it yet so I was wondering if someone would be able to point me in the right direction on working around this specific problem. The following is the output from the nmake.

interrogate -od Opt3-Win32\ -oc Opt3-Win32\libpvrpn_igate.cxx
 -DCPPPARSER -D__STDC__=1 -D__cplusplus -longlong __int64 -D_X86_ -DWIN32_VC -D"_declspec(param)=" -D"__declspec(param)=" -D_near  -D_far -D__near  -D__far -D_WIN32 -D__stdcall -Dvolatile -Dmutable -S"C:\Panda3d\include\parser-inc" -I"C:\Panda3D-1.5.2\source\panda3d-1.5.2\panda" -I"..\cull" -I"..\device" -I"..\dgraph" -I"..\display" -I"..\downloader" -I"..\event" -I"..\express" -I"..\gobj" -I"..\gsgbase" -I"..\lerp" -I"..\linmath" -I"..\mathutil" -I"..\nativenet" -I"..\net" -I"..\pandabase" -I"..\pgraph" -I"..\pipeline" -I"..\pnmimage" -I"..\pstatclient" -I"..\putil" -I"C:\Panda3d\include" -I"C:\Panda3D-1.5.2\source\panda3d-1.5.2\thirdparty\win-python\include" -I"C:\Panda3D-1.5.2\source\panda3d-1.5.2\thirdparty\win-libs-vc8\vrpn\include" -I"C:\Panda3D-1.5.2\source\panda3d-1.5.2\thirdparty\win-libs-vc8\zlib\include" -I"C:\Panda3D-1.5.2\source\panda3d-1.5.2\thirdparty\win-libs-vc8\nvidiacg\include" -I"C:\Panda3D-1.5.2\source\panda3d-1.5.2\thirdparty\win-libs-vc8\fftw\include" -I"C:\Panda3D-1.5.2\source\panda3d-1.5.2\thirdparty\win-python\include" -I"C:\Panda3D-1.5.2\source\panda3d-1.5.2\thirdparty\win-libs-vc8\openssl\include" -DFORCE_INLINING  -fnames -string -refcount -assert -python-native    -module "panda" -library "libpvrpn" config_vrpn.cxx config_vrpn.h vrpnClient.cxx vrpnAnalog.cxx  vrpnAnalog.h vrpnAnalogDevice.cxx vrpnAnalogDevice.h vrpnButton.cxx  vrpnButton.h vrpnButtonDevice.cxx vrpnButtonDevice.h vrpnClient.h  vrpnDial.cxx vrpnDial.h vrpnDialDevice.cxx vrpnDialDevice.h  vrpnTracker.cxx vrpnTracker.h vrpnTrackerDevice.cxx  vrpnTrackerDevice.h vrpn_interface.h
    *** Error in vrpnClient.h near line 90, column 22:
    syntax error, unexpected '*', expecting '{' or ';' or ':' or '='
Error parsing file: 'config_vrpn.cxx'
NMAKE : fatal error U1077: 'c:\panda3d\bin\interrogate.EXE' : return code '0x1'
NMAKE : fatal error U1077: 'cd' : return code '0x2'

From this I checked the vrpnClient.h file and the code that it is complaining about is this.

vrpn_Connection *_connection;

I tried doing a forward declaration of this class and it got past this point. So it seems that it is not looking in any of the vrpn header files for some reason. What should I check to make sure that interrogate looks in these header files? Any help is appreciated. Thanks.

Do you really need to compile the VRPN interface? It’s only useful if you actually have a VRPN server and you intend to use it. It might be easiest just to disable this part of the build.

As to what’s going wrong, it might just be a problem with the particular version of the VRPN headers you’ve got installed, and some problem with interrogate failing to parse it for some reason. If this is the case, then putting forward references where necessary should be a perfectly reasonable workaround.


Oh, I don’t think Panda3D supports compiling with MSVC 2008. I think all the thirdparty libs are compiled for MSVC 2005, and I’m afraid you’d need to compile it with 2005 as well in order for it to work.

@pro-rsoft: I think most of the libraries are compiled using mingw and msys not MSVC 2005 so they should work just fine with either version. This seems to be the case because I decided to try to use makepanda instead to compile everything and with some minor modifications to the python code I have gotten everything to compile. I still have some problems to work out but I am going to be working on that tonight so hopefully I will have a fully built version of panda in MSVC 2008. If I get it working I will post the changes need to makepanda to make it work.

@drwr: I wasn’t sure what VRPN was being used for exactly in the engine so I will keep that in mind if I ever need to remove it at a later time.

The last time a tried to compile it with mingw, it was just like hell, lots of clashes in most parts. I have even altered the compile process of the dtool composites and memoryhook.
After a couple painful days, I gave up and use 2005 express, and suddenly everything ran fine, and I got it built around an hour.

I don’t think it’s just the libraries, I think it just doesn’t compile at all. Several other users have already tried with VC2008… and failed.
But, of course I don’t stop you if you try to anyways. If you want to disable VRPN, just add --no-vrpn to the command line.