Hello opensg-users,

i am trying to build OpenSG 1.8 (preferrably stable) on an x86_64 system using
Intel icc 10.1.

I found out that for the automake based build, in CommonConf exist only files
for i686-pc-linux-icc. The scons build seems not to support icc at all:
./scons compiler=icc -> scons: *** Invalid value for option compiler: icc

So I copied the CommonConf files to {conf|common}.x86_64-unknown-linux-icc.in.

I configured using
./configure --enable-glut --prefix=/home/av006de/icc/OpenSG --with-compiler=icc
--with-icc-gnu-compat=411

When I try to 'make', I get errors about deprecated compiler flags.

Looking inside the common file, i see that compiler-flags are only defined for
major versions up to 9. I added another ifeq there.

ifeq ($(COMPILERMAJORVERSION),10) seems not to be recognized correctly.
If i change it to ifeq ($(COMPILERVERSION),101), the parameters are taken.

The problem here is that the script expects the major version to be only one 
digit:
COMPILERMAJORVERSION := $(shell echo $(COMPILER) | cut -c1)
                                                       ^^^
this can be fixed by changing the line to:
COMPILERMAJORVERSION := $(shell echo $(COMPILER) | cut -d. -f1)

Having done that, below I added the line:

ifeq ($(COMPILERMAJORVERSION),10)
COMPILER                = -fpic -x c++ -ansi
else
...
endif

I had to remove the (deprecated) -Kc++eh -Krtti parameters, replacing the former
with -x c++.

Reconfigured, trying to build, i get while generating the dep files:
icpc: command line remark #10010: option '-cxxlib-gcc' is deprecated and will be
removed in a future release.

Another deprecated option, it is found in configure.in/configure.
The icc manual states: Suggested replacement -cxxlib[=dir].

Hoping that the directory will be correctly detected, i change it to only 
-cxxlib.

Configure, make again. Some dep files are generated, success! ;)

After having generated the first hand-full, errors from OSGConfig.h occur, 
reading:

.../OSGConfig.h(402): warning #47: incompatible redefinition of macro
"OSG_THROW_NOTHING" (declared at line 198)
  #     define OSG_THROW_NOTHING()

and

.../OSGConfig.h(415): warning #47: incompatible redefinition of macro
"OSG_STDEXTENSION_NAMESPACE" (declared at line 203)
  # define OSG_STDEXTENSION_NAMESPACE std

Having taken a look at OSGConfig.h, I see that for compiler version 10.1,
COMPILERVERSION should have the value 1010. The line which assures this for
major versions <10 is

COMPILER-3 := $(shell if test $(COMPILER-2) -lt 100 ; then echo 1; fi)
COMPILERVERSION := $(if $(COMPILER-3),$(COMPILER-2)0,$(COMPILER-2))

-lt 100 is no longer valid (101).

Thus I changed the above simply to

COMPILER-3 := 1
COMPILERVERSION := $(if $(COMPILER-3),$(COMPILER-2)0,$(COMPILER-2))

I don't know why the test for <100 was there, but I see that this naive change
might cause problems with the older compiler versions. Maybe someone could
comment on this and provide a solution which works with all versions.

Anyways, with the above fixes, OpenSG builds successfully on x86_64 with Intels
icc. I find that you could incorporate them into the cvs version.

Is scons support for icc planned? What about OpenSG 2.0?

Best regards,
  Patric

-- 
Patric Schmitz, MaTA i.A.
RWTH Aachen University, Center for Computing and Communication
Rechen- und Kommunikationszentrum, Virtual Reality Group
Seffenter Weg 23, D 52074 Aachen (Germany)
Phone: + 49 241 80 24893
mailto:[EMAIL PROTECTED] http://www.rz.rwth-aachen.de

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to