New package: fltk

Nicholas Wourms nwourms@netscape.net
Thu Oct 16 03:48:00 GMT 2003


<censored> wrote:

> Nicholas Wourms wrote:
> 
>> IIRC, OOTB fltk is heavily dependant on mingw/w32api stuff, 
> 
> 
> Obviously since it is a cross-platform toolkit. The cygwin version with 
> a win32 GUI relies on the w32api ,
> but not on mingw.

Well since I'm looking at it, I might as well make an official review.

First off, you have /usr/share/doc/fltk & /usr/share/doc/fltk-1.1.4.  I 
know the latter is created by the build script, so all you need to do is 
to move /usr/share/doc/fltk to /usr/share/doc/fltk-1.1.4 after "make 
install" but before the build script installs the README.

Second, where are the include files?  Building fltk apps will definitely 
need those.

Third, you can ditch /etc/postinstall since you aren't using a script.

>> doesn't target Cygwin/XFree86
> This binary package doesnt, though an XFree86 version could be built 
> without too much difficulty
> I think. Not urgent IMO since it comes with a win32 GUI.

I'm not saying that you should, but since it is being built against the 
w32-api, I'd advocate the following layout:
/usr/bin/fltk-config-nox
/usr/bin/fluid-nox.exe
/usr/lib/fltk-nox/libfltk*.a
/usr/include/fltk-nox/*.h
/usr/share/doc/fltk-nox-1.1.4/*
/usr/share/man/*/*-nox.*

This really shouldn't be a problem for people since most builds use 
fltk-config to get the library path AND since I'm suggesting that the 
static/import library names remain as the default (i.e. 
/usr/lib/fltk-nox/libfltk.a).  This may not seem necessary now, but 
thinking ahead is always a good idea.  Plus, you'll notice that this is 
the method used by the Xpm maintainer so that it won't interfere with 
XFree86.

>> and will build only static archives.
> 
> 
> yes. fltk is not libtoolized, so building shared libraries requires some 
> additional effort.

Not really, you could always cheat by using the --whole-archive method 
of converting a static archive into a dll.  i.e.:

g++ -shared -o cygfltknox-0.dll -Wl,--out-implib=libfltk.dll.a \
-Wl,--export-all-symbols -Wl,--enable-auto-import \
-Wl,--whole-archive libfltk.a -Wl,--no-whole-archive <<dependency_libs>>

You don't really need to worry about the ABI number, so setting it to 0 
for the first release will be ok for now.  Of course, you could always 
use the number "x" in the unix shared lib "libfltk.so.x.y", since that 
changes only when they break ABI compat.

Cheers,
Nicholas



More information about the Cygwin-apps mailing list