Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: [Wireshark-dev] packet-ncp2222 build question

Date: Wed, 9 May 2012 14:19:39 -0400
I've run into a puzzling issue here, perhaps someone can explain it to me.
I'm simply trying to build "all", but I get an unresolved external symbol in libwireshark.dll : ett_nds

I've tracked down the definition of this symbol in packet-ncp.c.save, which is NOT part of the build.  
packet-ncp.c is empty.  This seemed strange, since I just checked out a clean copy of the repository 
head from SVN - I'd have expected it to build correctly right out of the box.

After going in circles for some time, including deleting and re-checking out the source code,
I discovered the following snippet in epan/dissectors/Makefile.nmake:

packet-ncp2222.c: ..\..\tools/ncp2222.py
!IFDEF PYTHON
@echo Making packet-ncp2222.c
$(PYTHON) "../../tools/ncp2222.py" -o packet-ncp2222.c
!ELSE
@echo Faking packet-ncp2222.c...
@echo Python is required to build the NCP disector
@echo Hiding packet-ncp.c...
mv packet-ncp.c packet-ncp.c.save
touch packet-ncp.c $@
!ENDIF

So it's happening because I haven't defined PYTHON.  I can fix that (missed a step in setting up the new PC I guess),
but shouldn't wireshark build correctly either way?  Otherwise why have the ifdef at all?  You could just have nmake fail 
if python isn't defined.

I'm asking these questions in order to make sure defining PYTHON really is the issue, and not something
else that will crop up another way once I fix this particular thing.

Thanks for any input,
b.