Doesn't anybody test patches anymore? A4.4.3 GIT fails to build
Edgar Reynaldo

I'm getting these errors when building latest Allegro 4.4.3 from GIT with the patches applied to wwnd.c and wdispsw.c. There are several undeclared identifiers, and IDirectDraw2 something or other is undeclared as well.

#SelectExpand
1 2e:\LIBS\LIBS71Build\allegro\build>mingw32-make 3[ 1%] Building C object CMakeFiles/allegro.dir/src/win/wwnd.c.obj 4E:\LIBS\LIBS71Build\allegro\src\win\wwnd.c: In function 'directx_wnd_proc': 5E:\LIBS\LIBS71Build\allegro\src\win\wwnd.c:387:37: error: 'gfx_directx_primary_surface' undeclared (first use in this function); did you mean 'gfx_directx_safe'? 6 if ((HWND)wparam != wnd && gfx_directx_primary_surface) { 7 ^~~~~~~~~~~~~~~~~~~~~~~~~~~ 8 gfx_directx_safe 9E:\LIBS\LIBS71Build\allegro\src\win\wwnd.c:387:37: note: each undeclared identifier is reported only once for each function it appears in 10E:\LIBS\LIBS71Build\allegro\src\win\wwnd.c:388:13: warning: implicit declaration of function 'IDirectDrawSurface2_SetPalette' [-Wimplicit-function-declaration] 11 IDirectDrawSurface2_SetPalette(gfx_directx_primary_surface->id, ddpalette); 12 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 13E:\LIBS\LIBS71Build\allegro\src\win\wwnd.c:388:77: error: 'ddpalette' undeclared (first use in this function); did you mean 'fli_palette'? 14 IDirectDrawSurface2_SetPalette(gfx_directx_primary_surface->id, ddpalette); 15 ^~~~~~~~~ 16 fli_palette 17E:\LIBS\LIBS71Build\allegro\src\win\wwnd.c: In function 'wnd_thread_proc': 18E:\LIBS\LIBS71Build\allegro\src\win\wwnd.c:490:19: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] 19 if ((result >= WAIT_OBJECT_0) && (result < (int)(WAIT_OBJECT_0 + _win_input_events))) { 20 ^~ 21E:\LIBS\LIBS71Build\allegro\src\win\wwnd.c:490:48: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] 22 if ((result >= WAIT_OBJECT_0) && (result < (int)(WAIT_OBJECT_0 + _win_input_events))) { 23 ^ 24CMakeFiles\allegro.dir\build.make:3278: recipe for target 'CMakeFiles/allegro.dir/src/win/wwnd.c.obj' failed 25mingw32-make[2]: *** [CMakeFiles/allegro.dir/src/win/wwnd.c.obj] Error 1 26CMakeFiles\Makefile2:66: recipe for target 'CMakeFiles/allegro.dir/all' failed 27mingw32-make[1]: *** [CMakeFiles/allegro.dir/all] Error 2 28Makefile:126: recipe for target 'all' failed 29mingw32-make: *** [all] Error 2 30 31e:\LIBS\LIBS71Build\allegro\build>

Hey Zelda guys, could you take a look at this? Were there other things that your patches needed to work that aren't in the master branch for Allegro 4.4.3?

DarkDragon

Let me take a look.

Edgar Reynaldo

This was building with MinGW-W64 gcc v7.1.0, using latest GIT as of today, 08/04/2017. I had to specify a whole bunch of stuff manually for dx and all the deps in cmake, but I think it was all configured correctly.

Is there a specific lib to link to for the DDPALETTE stuff?

See my comment on the commit -

https://github.com/liballeg/allegro5/commit/8ed3298d49ae5c18601f0ada94b74dd8712b1160#diff-dd33cc8f6da8cb3b641611666874ba0cR389

EDIT
The only thing that needs to be fixed is to add #include "wddraw.h" in src/win/wwnd.c. After that Allegro builds, albeit with lots of warnings.

ZoriaRPG
Edgar Reynaldo said:

[...]

Did you push the changes?

I would also appreciate copies of the allegro 4.4.3 libs that you compiled with these changes, and any other related files; and the revised CMake stuff.

I need to libs to test with ZC on Linux.
That include directive may need compiler-specific guards.

P.S. If you manage to compile these fixes on Windows 7, too, let me knoe, and I will test that lib. (Needs to be static linked. I've been waiting for Gleeok to apply some form of patch to the KB thread issues before I go through that process again. Can you link to the procedure for building 4.4.3 on Linux and on Windows, somewhere? The old guides are somewhat out of date.)

Edgar Reynaldo

EDIT
I made a wiki page on building Allegro 4.4.X with MinGW. You can find it here :

https://wiki.allegro.cc/index.php?title=Building_Allegro_4_with_MinGW

SiegeLord will probably commit my fix here in a bit, and then latest GIT should build again.

ORIGINAL POST
I don't have commit access.

ZoriaRPG said:

I would also appreciate copies of the allegro 4.4.3 libs that you compiled with these changes, and any other related files; and the revised CMake stuff.

I posted binaries here : https://www.allegro.cc/forums/thread/616998

Quote:

Can you link to the procedure for building 4.4.3 on Linux and on Windows, somewhere? The old guides are somewhat out of date.)

No, but I can make a wiki page for it. Give me a little time.

The basics are :

git clone allegro_url
git checkout 4.4
git pull
mkdir build
cd build
cmake-gui ..
(Lots of configuration here)
mingw32-make
mingw32-make install

Configuration details :
I had to manually specify the DX libs and the include directories, as well as the specific libs for all of the dependencies.

Other than that, it's just checking what you want, and making sure to set CMAKE_INSTALL_PREFIX to something other than c:/mingw, so you can work with different versions of allegro.

Other than that, moving to A4.4.3 should save you some misery in building dependencies - it comes with loadpng, jpgalleg, logg, and allegrogl.

Thread #616995. Printed from Allegro.cc