Maurice Lombardi wrote:
Frank Heckenbach wrote:
as I said recently, I wrote a small configure script now. The script is completely optional, i.e. those who don't want to use it can configure GRX manually just like before, but those like me who don't want to edit config files by hand should not need to do this anymore.
It will just create a link from the appropriate makefile.foo to Makefile (so you can invoke make without `-f makefile.foo' afterwards)
but DJGPP has no symlinks ln -s (except for executables). Replaced usually by copy (needs a test)
OK, I've done this in the following patch (and also replaced the `[ -L ... ]' which also failed on Solaris for another reason by a series of file compares which should work on DJGPP with cmp, and fixed an "8+3" issue in configure).
While running the pascal tests I have seen that if we stick to the old policy it is necessary to introduce -lpng in makefiles to enable the imgviewer to compile (diff24). Of course these makefiles can be greatly simplified if one supposes the configure way.
Not only then. Also if the `{$L}'s are set manually, the `-l's are not necessary for Pascal. I was going to suggest this, anyway because I noticed a problem on Solaris, and have already prepared a patch.
The other thing is, I'd intentionally not put imgview in an ifdef in the makefile, because the program checks GrPngSupport and GrJpegSupport itself, so it should work properly if only one of them is enabled (only with the corresponding file format then, of course), and even is none is installed, it should print a proper message. So I'd prefer to build it in any case.
Some other things I noticed on Solaris:
- The Solaris shell doesn't understand `[ -e ... ]' (known issue with other packages). `-r' can be used instead which seems to be understood by all shells (affects configure and src/makefile.{lnx,x11}).
- There were problems with redeclaration of `ushort'. Since that's a typedef (not a #define) it's not easy to check if it's defined in the system header (without autoconf, but I guess you don't want to use autoconf ;-). Since it's used only locally in some src/bgi files, I think it's easiest to just rename it, which I'm doing.
- bgi/text1.c:70: warning: `temp1' might be used uninitialized in this function Unlike most of these warnings given by GCC, this one is justified. ;-) temp1 can indeed be used uninitialized (though in a rather unlikely case it seems). You might want to take a look at my fix, but I think it should be ok now.
- For `-lsocket' (needed on Solaris as noted), I'm adding a placeholder in the Pascal units. Also, configure can now set it (and LINUX_CONSOLE as well) when necessary.
- As said above, I removed the `-l's from the Pascal makefiles which are not necessary when the `{$L}'s in the units have been set.
With these changes I could build GRX on Solaris with just `--enable-lsocket --disable-shared' in addition to my other configure options.
All of this is in diff24.new. As the file name says, I suggest to apply this instead of Maurice's diff24, for the reasons given above.
When running imgviewer with djgpp on the images contained in the test directory it gives very bad results for two reasons:
- the 320x240 screen: this was for old VGA-only setups: everybody has a VESA/SVGA now.
- BPP should be 24 as in other tests of jpeg/png
With the corrections (diff25) all seems perfect.
Thanks. (Though it crashes the console in DosEmu on my system, but it works in xdos.)
Frank