ports/115701: devel/ode: does not build

Dmitry Marakasov amdmi3 at amdmi3.ru
Thu Aug 23 01:28:03 UTC 2007

* Jose Alonso Cardenas Marquez (jacardenasm at gmail.com) wrote:

> Hi, it's an strange error because if you try to build  devel/ode
> again, it will compile without problems.
> tb3 and tb4 tinderboxes build devel/ode without problems but i saw
> this error some times when  i was testing ode 0.8.
> http://tb3.droso.net/logs/6-acm/ode-0.8,1.log
> http://tb4.droso.net/logs/6-STABLE/ode-0.8,1.log
> Try
> make clean clean-depends && make install clean clean-depends

Doesn't help (I have no work dirs at all).
Building again doesn't help either.

Though, I've built it and I know the cause of an error.

In the command line that fails:

c++ -DHAVE_CONFIG_H -I. -I. -I../../include/ode  -O2 -fPIC -I/usr/local/include -I../../include -I../../include  -I/usr/work/usr/ports/devel/ode/work/ode-0.8/OPCODE -I/usr/work/usr/ports/devel/ode/work/ode-0.8/OPCODE/Ice -DdTRIMESH_ENABLED -DdTRIMESH_OPCODE -O2 -fno-strict-aliasing -pipe -march=pentium4 -I/usr/local/include -L/usr/local/lib -MT libode_a-ode.o -MD -MP -MF ".deps/libode_a-ode.Tpo" -c -o libode_a-ode.o `test -f 'ode.cpp' || echo './'`ode.cpp

, the problem are -I options:

-I../../include/ode -I/usr/local/include -I../../include

Thus, include files from currently installed ode 0.7 are used -> bad.

After pkg_deleting ode-0.7 and recompiling, I've ran into another error:

if c++ -DHAVE_CONFIG_H -I. -I. -I../../include/ode  -O2 -fPIC -I/usr/local/include -I../../include -I../../include  -I/usr/work/usr/ports/devel/ode/work/ode-0.8/OPCODE -I/usr/work/usr/ports/devel/ode/work/ode-0.8/OPCODE/Ice -DdTRIMESH_ENABLED -DdTRIMESH_OPCODE -O2 -fno-strict-aliasing -pipe -march=pentium4 -I/usr/local/include -L/usr/local/lib -MT libode_a-collision_util.o -MD -MP -MF ".deps/libode_a-collision_util.Tpo" -c -o libode_a-collision_util.o `test -f 'collision_util.cpp' || echo './'`collision_util.cpp; \
        then mv -f ".deps/libode_a-collision_util.Tpo" ".deps/libode_a-collision_util.Po"; else rm -f ".deps/libode_a-collision_util.Tpo"; exit 1; fi
collision_util.cpp: In function `void dInfiniteAABB(dxGeom*, dReal*)':
collision_util.cpp:458: error: expected primary-expression before ';' token
collision_util.cpp:459: error: expected primary-expression before ';' token
collision_util.cpp:460: error: expected primary-expression before ';' token
collision_util.cpp:461: error: expected primary-expression before ';' token
collision_util.cpp:462: error: expected primary-expression before ';' token
collision_util.cpp:463: error: expected primary-expression before ';' token
gmake[2]: *** [libode_a-collision_util.o] Error 1
gmake[2]: Leaving directory `/usr/work/usr/ports/devel/ode/work/ode-0.8/ode/src'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/usr/work/usr/ports/devel/ode/work/ode-0.8/ode'
gmake: *** [all-recursive] Error 1
*** Error code 2

Stop in /usr/ports/devel/ode.
*** Error code 1

Stop in /usr/ports/devel/ode.

This happens because dInfinity is not defined in config.h:

% grep dInfi include/ode/config.h
/* dInfinity Constant */
#define dInfinity 

After I've defined it as FLT_MAX, the compilation succeeded.

If you want, I can investigate why exactly this constant does not get
defined on my system. (quick grep config.log for now:

configure:7752: checking for appropriate dInfinity constant
configure:7754: result: 

Best regards,
  Dmitry Marakasov               mailto:amdmi3 at amdmi3.ru

More information about the freebsd-ports-bugs mailing list