Re: [Iup-users] Problem linking with scintilla
Brought to you by:
scuri
From: sur-behoffski <sur...@gr...> - 2023-07-17 10:17:35
|
On 7/16/23 06:22, Anonymous wrote: > Note, the documentation says to use -lpangox-2.0, but their is no libpangox-2.0.so file that exists in the GTK2 or GTK3 directory. Was it supposed to say -lpangoxft-1.0 or -lpangomm-1.4.so or -lpangocairo-1.0.so.0? > > On 7/15/23 13:06, Anonymous wrote: >> My problem is why won't GTK show up in my path, even though the system works with GTK apps? Is that normal? I could copy all the files needed to a directory for static linking as https://www.tecgraf.puc-rio.br/iup/ says to do, [...] G'day, I've found and fixed this problem as part of my work on "lglicua": https://sourceforge.net/projects/lglicua/files/ The problem is that the Tecgraf build infrastructure, especially "tecmake.mak", but also "iup/srcweb/config.mak", use a test to decide whether to use GTK2 (older) or GTK3 (newer). Unfortunately, v4.21: https://sourceforge.net/p/iup/iup/HEAD/tree/trunk/iup/tecmake.mak has code blocks that top out at GNU/Linux Kernel 5, and newer distributions, notably MX 21.3 and Ubuntu 23.04, use Kernel 6. This overflow of the kernel numbering results in an incorrect GTK2 selection instead of GTK3, and compilation and linking mayhem ensues, especially for CD and IUP. My Tecgraf Assistant fixes this problem by overriding (stomps on) the Tecgraf tecmake.mak each time a build is requested. (Note that all of IM, CD, FTGL, PDFlib7 and IUP all have identical, v4.21 tecmake.mak.) I released a fixed version (4.30) with the 0.1-alpha8 release, and a minor cleanup of code formatting (4.31) in 0.1-beta1. An example of some problem Makefile code, followed by improved code, is: -------- 4.21 (lines 298-317) starts here -------- ifdef GTK_DEFAULT ifndef USE_GTK2 ifneq ($(findstring Linux5, $(TEC_UNAME)), ) USE_GTK3 = Yes endif ifneq ($(findstring Linux4, $(TEC_UNAME)), ) USE_GTK3 = Yes endif ifneq ($(findstring Linux31, $(TEC_UNAME)), ) USE_GTK3 = Yes endif ifneq ($(findstring cygw, $(TEC_UNAME)), ) USE_GTK3 = Yes endif #Homebrew #ifneq ($(findstring MacOS10, $(TEC_UNAME)), ) # USE_GTK3 = Yes #endif endif endif -------- 4.21 (lines 298-317) ends here -------- -------- 4.31 (lines 261-279) starts here -------- # Refine GTK default request: Newer GNU/Linux systems get GTK3, # unless GTK2 is specifically defined. ifdef GTK_DEFAULT ifndef USE_GTK2 ifeq (Linux, $(TEC_SYSNAME)) ifneq ($(filter 4 5 6 7 8 9, $(TEC_SYSVERSION)), ) USE_GTK3 = Yes else ifneq ($(findstring Linux31, $(TEC_UNAME)), ) USE_GTK3 = Yes endif else ifneq ($(findstring cygw, $(TEC_UNAME)), ) USE_GTK3 = Yes endif #Homebrew #ifneq ($(findstring MacOS10, $(TEC_UNAME)), ) # USE_GTK3 = Yes #endif endif endif -------- 4.31 (lines 261-279) ends here -------- I have tested tecmake.mak 4.31 on the following distributions, using an array of virtual machines: Linux Mint: 21, 21.1 MX: 21_ahs_x64, 21.1_ahs_x64 [Kernels 5.x.y] , 21.3_ahs_x64 [Kernel 6.0.y]; CentOS7: Rocky: 9, 9.1, 9.2; and Ubuntu: 20.04.3, 22.10 [Kernels 5.x.y], 23.04 [Kernel 6.2.y]. -------- I've fed patches for the fixes/changes to tecmake.mak, and he has not acted on my input. I sent the 4.21 -> 4.30 patches via private email, and the 4.30 -> 4.31 (smaller set) on the mailing list. I note that Scuri has consistently been helpful, but has very limited time to devote to the IM/CD/IUP toolkits. It's now coming up to three years since the last major release, and IUP, the most active project, has had roughly 50 Subversion changes: Some are fixes, some are new features. This is why my "lglicua" Assistant works from the SourceForge repository, rather than use the pre-packaged releases. Is there some way that we can enable a new release of the toolkits? Can someone work under Scuri's supervision, if he's unable to devote time himself, due to other commitments? Can the full packaging scripts, including test rigs, be documented and released? Hopes that the tecmake.mak update fixes build problems, and also hope that we can make progress on procuring a new release. cheers, sur-behoffski (Brenton Hoff) programmer, Grouse Software |