[Therion] therion 5.3.16 loch compile fails

2014-12-29 Thread Bill Gee
Hi Wookey -

Sorry about that!  I don't use colors very often, but I sort of assume when I 
do that they will work for most people.

The three changes I made were to directly set the values of VTKPATH, 
VTKLIBPATH and VTKLIBS.  The other changes were simply commenting out the 
logic that attempts to set these variables by scanning the local system.

Your comment about a "smarter" build system is interesting.  One of the things 
I discovered while working on this problem is that cmake has a system for 
finding libraries, and the vtk package for Fedora includes the necessary files 
to implement this system.  

I generated a diff file and attached it to this message.

Bill Gee



On Monday, December 29, 2014 17:02:46 Wookey wrote:
> +++ Bill Gee [2014-12-29 10:12 -0600]:
> >Update -
> >
> > 
> >
> >Solved! I finally got Loch to compile. The change is in the Loch
> >Makefile,
> >highlighted below in red. With this final change the entire Therion
> >package will compile.
> 
> My email is still black-and-white text. A diff would have been rather more
> use :-)
> But I presume you are saying, replace:
> >#ifeq ($(VTKV6),1)
> >
> >#VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION)
> >-lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION)
> >-lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION)
> >-lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
> >
> >#else
> >
> >#VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics
> >-lvtkFiltering
> >-lvtkCommon -lfreetype
> >
> >#endif
> 
> with:
> >VTKLIBS = -lvtkCommonExecutionModel -lvtkCommonDataModel
> >-lvtkCommonCore
> >-lvtkFiltersCore -lvtkFiltersHybrid -lvtkIOLegacy -lfreetype -lpng
> >-ljpeg
> 
> ?
> 
> Thanks for the info. Seems that debian-based and fedora-based distros
> have used a different library-naming scheme.
> 
> Obviously a smarter patch would be needed to let it build on debian
> _and_ fedora based systems.
> 
> Mostly what all this shows is that therion could really use a proper
> build system like cmake, as then it could just use pkgconfig or
> built-in cmake findpackage runes which should deal with distro
> packaging variation like this.
> 
> Wookey
-- next part --
19,21c19,22
< VTKVERSION = $(shell tclsh ./getvtkver.tcl version)
< VTKPATH = $(shell tclsh ./getvtkver.tcl incpath)
< VTKLIBPATH = $(shell tclsh ./getvtkver.tcl libpath)
---
> #VTKVERSION = $(shell tclsh ./getvtkver.tcl version)
> VTKVERSION=6.1
> # VTKPATH = $(shell tclsh ./getvtkver.tcl incpath)
> # VTKLIBPATH = $(shell tclsh ./getvtkver.tcl libpath)
23,27c24,28
< ifeq ($(VTKV6),1)
< VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION) 
-lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION) 
-lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION) 
-lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
< else
< VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering 
-lvtkCommon -lvtkjpeg -lvtkpng -lvtkzlib -lvtksys -lfreetype
< endif
---
> #ifeq ($(VTKV6),1)
> #VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION) 
> -lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION) 
> -lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION) 
> -lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
> #else
> #VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering 
> -lvtkCommon -lvtkjpeg -lvtkpng -lvtkzlib -lvtksys -lfreetype
> #endif
29,30c30,31
< # VTKPATH = /usr/local/include/vtk-$(VTKVERSION)
< # VTKLIBPATH = /usr/local/lib/vtk-$(VTKVERSION)
---
> VTKPATH = /usr/include/vtk
> VTKLIBPATH = /usr/lib64/vtk
36a38,53
> CXX = c++
> CC = gcc
> POBJECTS = lxR2P.o
> #ifeq ($(VTKV6),1)
> #VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION) 
> -lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION) 
> -lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION) 
> -lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
> #else
> #VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering 
> -lvtkCommon -lfreetype
> #endif
> VTKLIBS = -lvtkCommonExecutionModel -lvtkCommonDataModel -lvtkCommonCore 
> -lvtkFiltersCore -lvtkFiltersHybrid -lvtkIOLegacy -lfreetype -lpng -ljpeg
> CXXPFLAGS = -DLXLINUX $(shell wx-config --cxxflags) -Wno-deprecated $(shell 
> freetype-config --cflags) -I$(VTKPATH)
> CCPFLAGS = -DLXLINUX  $(shell wx-config --cflags)
> LXLIBDIR = linux
> PLIBS = $(shell wx-config --libs --gl-libs) -L$(VTKLIBPATH) $(VTKLIBS) -lGLU 
> -lGL -lpthread -lX11 -lz 
> LXPLATFORM = LINUX
> 
> # PLATFORM DEBIAN
50,64d66
< 
< # PLATFORM DEBIAN
< CXX = c++
< CC = gcc
< POBJECTS = lxR2P.o
< ifeq ($(VTKV6),1)
< VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION) 
-lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION) 
-lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION) 
-lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
< else
< VTKLIBS = -lvtkHybrid -lvtkImaging -lvt

[Therion] therion 5.3.16 loch compile fails

2014-12-29 Thread Wookey
+++ Bill Gee [2014-12-29 10:12 -0600]:
>Update -
> 
> 
> 
>Solved! I finally got Loch to compile. The change is in the Loch Makefile,
>highlighted below in red. With this final change the entire Therion
>package will compile.

My email is still black-and-white text. A diff would have been rather more use 
:-)


But I presume you are saying, replace:
>#ifeq ($(VTKV6),1)
> 
>#VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION)
>-lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION)
>-lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION)
>-lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
> 
>#else
> 
>#VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering
>-lvtkCommon -lfreetype
> 
>#endif

with:

>VTKLIBS = -lvtkCommonExecutionModel -lvtkCommonDataModel -lvtkCommonCore
>-lvtkFiltersCore -lvtkFiltersHybrid -lvtkIOLegacy -lfreetype -lpng -ljpeg

?

Thanks for the info. Seems that debian-based and fedora-based distros
have used a different library-naming scheme. 

Obviously a smarter patch would be needed to let it build on debian
_and_ fedora based systems.

Mostly what all this shows is that therion could really use a proper
build system like cmake, as then it could just use pkgconfig or
built-in cmake findpackage runes which should deal with distro
packaging variation like this.

Wookey
-- 
Principal hats:  Linaro, Debian, Wookware, ARM
http://wookware.org/



[Therion] therion 5.3.16 loch compile fails

2014-12-29 Thread Bill Gee
Update -

Solved!  I finally got Loch to compile.  The change is in the Loch Makefile, 
highlighted 
below in red.  With this final change the entire Therion package will compile.

==
# PLATFORM LINUX
CXX = c++
CC = gcc
POBJECTS = lxR2P.o
#ifeq ($(VTKV6),1)
#VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION) -
lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION) -
lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION) -
lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
#else
#VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering 
-lvtkCommon -
lfreetype
#endif
VTKLIBS = -lvtkCommonExecutionModel -lvtkCommonDataModel -lvtkCommonCore -
lvtkFiltersCore -lvtkFiltersHybrid -lvtkIOLegacy -lfreetype -lpng -ljpeg
CXXPFLAGS = -DLXLINUX $(shell wx-config --cxxflags) -Wno-deprecated $(shell 
freetype-config --cflags) -I$(VTKPATH)
CCPFLAGS = -DLXLINUX  $(shell wx-config --cflags)
LXLIBDIR = linux
PLIBS = $(shell wx-config --libs --gl-libs) -L$(VTKLIBPATH) $(VTKLIBS) -lGLU 
-lGL -
lpthread -lX11 -lz 
LXPLATFORM = LINUX


Bill Gee




On Sunday, December 28, 2014 14:33:53 Bill Gee wrote:
> Hello Martin and everyone ...
> 
> This version of therion still fails to compile loch on my Fedora 21 system.
> At the end of the loch compile it issues these messages:
> 
> 
> c++ -o ./loch -Wall ./lxR2P.o ./lxTR.o ./lxOGLFT.o ./lxSetup.o ./lxRender.o
> ./lxWX.o ./lxImgIO.o ./lxLRUD.o ./lxFile.o ./lxSTree.o ./lxData.o ./lxMath.o
> ./lxSView.o ./lxSScene.o ./lxGUI.o ./lxGLC.o ./lxOptDlg.o ./lxAboutDlg.o
> ./lxPres.o ./img.o -lwx_gtk2u_gl-2.8 -pthread -Wl,-z,relro   -
> lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8
> -lwx_gtk2u_qa-2.8 -lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8
> -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8 
> -L/usr/lib64/vtk -
> lvtkCommonExecutionModel-6.1 -lvtkCommonDataModel-6.1 -lvtkCommonCore-6.1 
-
> lvtkFiltersCore-6.1 -lvtkFiltersHybrid-6.1 -lvtkIOLegacy-6.1 -lfreetype
> -lpng -ljpeg -lGLU -lGL -lpthread -lX11 -lz  -s
> /usr/bin/ld: cannot find -lvtkCommonExecutionModel-6.1
> /usr/bin/ld: cannot find -lvtkCommonDataModel-6.1
> /usr/bin/ld: cannot find -lvtkCommonCore-6.1
> /usr/bin/ld: cannot find -lvtkFiltersCore-6.1
> /usr/bin/ld: cannot find -lvtkFiltersHybrid-6.1
> /usr/bin/ld: cannot find -lvtkIOLegacy-6.1
> collect2: error: ld returned 1 exit status
> Makefile:145: recipe for target 'loch' failed
> make: *** [loch] Error 1
> ===
> 
> My system does not contain any of the files that ld cannot find.
> 
> I got this far by making some changes to the loch Makefile.  Here is the
> relevant section:
> 
> =
> #VTKVERSION = $(shell tclsh ./getvtkver.tcl version)
> VTKVERSION=6.1
> # VTKPATH = $(shell tclsh ./getvtkver.tcl incpath)
> # VTKLIBPATH = $(shell tclsh ./getvtkver.tcl libpath)
> VTKV6 = $(shell tclsh ./getvtkver.tcl version6)
> #ifeq ($(VTKV6),1)
> #VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION) -
> lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION) -
> lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION) -
> lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
> #else
> #VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering -
> lvtkCommon -lvtkjpeg -lvtkpng -lvtkzlib -lvtksys -lfreetype
> #endif
> # VTKVERSION = 5.4
> VTKPATH = /usr/include/vtk
> VTKLIBPATH = /usr/lib64/vtk
> POSTMAKE =
> STRIPFLAG = -s
> 
> # PLATFORM CONFIG
> 
> # PLATFORM LINUX
> CXX = c++
> CC = gcc
> POBJECTS = lxR2P.o
> #ifeq ($(VTKV6),1)
> VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION) -
> lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION) -
> lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION) -
> lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
> #else
> #VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering -
> lvtkCommon -lfreetype
> #endif
> CXXPFLAGS = -DLXLINUX $(shell wx-config --cxxflags) -Wno-deprecated $(shell
> freetype-config --cflags) -I$(VTKPATH)
> =
> 
> gettkver.tcl returns 0 even though the installed version of vtk is 6.1.
> 
> I forced the setting for both VTKPATH and VTKLIBPATH, and I removed the 'IF'
> statement around the setting of VTKLIBS.  I tried using both of the VTKLIBS
> settings, but neither of them work.
> 
> I know very little about ld.  It appears to me that the Fedora installation
> of vtk is using different filenames for the shared object libraries.  The
> libraries names in the Makefile do not match up with what is actually on my
> system.
> 
> I attached a text file to this message showing 'ls -l' from the vtk shared
> objects directory.  If someone can tell me which of these libraries are
> actually needed, I will try setting the VTKLIBS variable to use them.
> 
> Final note - For me this is not critical.  I can easily set up the main
> therion Makefile so it bypasses loch entirely.  I have never used loch.
> Therion compiles correctl

[Therion] therion 5.3.16 loch compile fails

2014-12-28 Thread Bill Gee
Hello Martin and everyone ...

This version of therion still fails to compile loch on my Fedora 21 system.  
At the end of the loch compile it issues these messages:


c++ -o ./loch -Wall ./lxR2P.o ./lxTR.o ./lxOGLFT.o ./lxSetup.o ./lxRender.o 
./lxWX.o ./lxImgIO.o ./lxLRUD.o ./lxFile.o ./lxSTree.o ./lxData.o ./lxMath.o 
./lxSView.o ./lxSScene.o ./lxGUI.o ./lxGLC.o ./lxOptDlg.o ./lxAboutDlg.o 
./lxPres.o ./img.o -lwx_gtk2u_gl-2.8 -pthread -Wl,-z,relro   -
lwx_gtk2u_richtext-2.8 -lwx_gtk2u_aui-2.8 -lwx_gtk2u_xrc-2.8 -lwx_gtk2u_qa-2.8 
-lwx_gtk2u_html-2.8 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu_xml-2.8 
-lwx_baseu_net-2.8 -lwx_baseu-2.8  -L/usr/lib64/vtk -
lvtkCommonExecutionModel-6.1 -lvtkCommonDataModel-6.1 -lvtkCommonCore-6.1 -
lvtkFiltersCore-6.1 -lvtkFiltersHybrid-6.1 -lvtkIOLegacy-6.1 -lfreetype -lpng 
-ljpeg -lGLU -lGL -lpthread -lX11 -lz  -s
/usr/bin/ld: cannot find -lvtkCommonExecutionModel-6.1
/usr/bin/ld: cannot find -lvtkCommonDataModel-6.1
/usr/bin/ld: cannot find -lvtkCommonCore-6.1
/usr/bin/ld: cannot find -lvtkFiltersCore-6.1
/usr/bin/ld: cannot find -lvtkFiltersHybrid-6.1
/usr/bin/ld: cannot find -lvtkIOLegacy-6.1
collect2: error: ld returned 1 exit status
Makefile:145: recipe for target 'loch' failed
make: *** [loch] Error 1
===

My system does not contain any of the files that ld cannot find.

I got this far by making some changes to the loch Makefile.  Here is the 
relevant section:

=
#VTKVERSION = $(shell tclsh ./getvtkver.tcl version)
VTKVERSION=6.1
# VTKPATH = $(shell tclsh ./getvtkver.tcl incpath)
# VTKLIBPATH = $(shell tclsh ./getvtkver.tcl libpath)
VTKV6 = $(shell tclsh ./getvtkver.tcl version6)
#ifeq ($(VTKV6),1)
#VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION) -
lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION) -
lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION) -
lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
#else
#VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering -
lvtkCommon -lvtkjpeg -lvtkpng -lvtkzlib -lvtksys -lfreetype
#endif
# VTKVERSION = 5.4
VTKPATH = /usr/include/vtk
VTKLIBPATH = /usr/lib64/vtk
POSTMAKE =
STRIPFLAG = -s

# PLATFORM CONFIG

# PLATFORM LINUX
CXX = c++
CC = gcc
POBJECTS = lxR2P.o
#ifeq ($(VTKV6),1)
VTKLIBS = -lvtkCommonExecutionModel-$(VTKVERSION) -
lvtkCommonDataModel-$(VTKVERSION) -lvtkCommonCore-$(VTKVERSION) -
lvtkFiltersCore-$(VTKVERSION) -lvtkFiltersHybrid-$(VTKVERSION) -
lvtkIOLegacy-$(VTKVERSION) -lfreetype -lpng -ljpeg
#else
#VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering -
lvtkCommon -lfreetype
#endif
CXXPFLAGS = -DLXLINUX $(shell wx-config --cxxflags) -Wno-deprecated $(shell 
freetype-config --cflags) -I$(VTKPATH)
=

gettkver.tcl returns 0 even though the installed version of vtk is 6.1.

I forced the setting for both VTKPATH and VTKLIBPATH, and I removed the 'IF' 
statement around the setting of VTKLIBS.  I tried using both of the VTKLIBS 
settings, but neither of them work.

I know very little about ld.  It appears to me that the Fedora installation of 
vtk is using different filenames for the shared object libraries.  The 
libraries 
names in the Makefile do not match up with what is actually on my system.

I attached a text file to this message showing 'ls -l' from the vtk shared 
objects directory.  If someone can tell me which of these libraries are 
actually needed, I will try setting the VTKLIBS variable to use them.

Final note - For me this is not critical.  I can easily set up the main 
therion Makefile so it bypasses loch entirely.  I have never used loch.  
Therion compiles correctly - it is only loch that fails.

Thanks - Bill Gee





On Sunday, December 28, 2014 19:56:48 Martin Budaj wrote:
> Hi all,
> 
> new therion version is available. It's mostly a bug fixing release;
> see below for details. Most of the contributed patches were also
> applied or adapted (thanks, Olly & Wookey).

> Therion 5.3.16 (2014-12-28):
> 
> loch:
>  * VTK 6.0 support
>  * wxWidgets 3.0 support
-- next part --
total 174188
lrwxrwxrwx 1 root root  17 Nov 20 02:38 libvtkalglib.so -> libvtkalglib.so.1
-rwxr-xr-x 1 root root  147232 Nov 20 02:42 libvtkalglib.so.1
-rwxr-xr-x 1 root root  394392 Nov 20 02:42 libvtkChartsCoreJava.so
lrwxrwxrwx 1 root root  30 Nov 20 02:38 libvtkChartsCorePython27D.so -> 
libvtkChartsCorePython27D.so.1
-rwxr-xr-x 1 root root  893800 Nov 20 02:42 libvtkChartsCorePython27D.so.1
lrwxrwxrwx 1 root root  21 Nov 20 02:38 libvtkChartsCore.so -> 
libvtkChartsCore.so.1
-rwxr-xr-x 1 root root 1348976 Nov 20 02:42 libvtkChartsCore.so.1
lrwxrwxrwx 1 root root  24 Nov 20 02:38 libvtkChartsCoreTCL.so -> 
libvtkChartsCoreTCL.so.1
-rwxr-xr-x 1 root root  567112 Nov 20 02:42 libvtkChartsCoreTCL.so.1
-rwxr-xr-x 1 root root   19736 Nov 20 02:42 libvtkCommonColorJava.so
lrwxrwxrwx 1 root root  31 Nov 20 02:38 libvtkCommonColorPython27D.so -> 
lib