joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.81k stars 383 forks source link

Building on Debian/bullseye #4360

Open jibanes opened 1 year ago

jibanes commented 1 year ago

Describe the bug

Build fails on Debian 11 (bullseye) with libsdl1.2-dev on x86_64:

In file included from ../../src/output/output_opengl.h:7,
                 from sdlmain.cpp:158:
/usr/include/SDL/SDL_opengl.h:116: warning: "GL_GLEXT_VERSION" redefined
  116 | #define GL_GLEXT_VERSION 29
      | 
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:46,
                 from ../../src/output/output_opengl.h:7,
                 from sdlmain.cpp:158:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      | 
sdlmain.cpp:241:4: warning: #warning is a GCC extension
  241 | #  warning It is STRONGLY RECOMMENDED to compile the DOSBox-X code using the SDL 1.x library provided in this source repository.
      |    ^~~~~~~
sdlmain.cpp:241:4: warning: #warning It is STRONGLY RECOMMENDED to compile the DOSBox-X code using the SDL 1.x library provided in this source repository. [-Wcpp]
sdlmain.cpp:242:4: error: #error You can ignore this by commenting out this error, but you will encounter problems if you use the unmodified SDL 1.x library.
  242 | #  error You can ignore this by commenting out this error, but you will encounter problems if you use the unmodified SDL 1.x library.
      |    ^~~~~
sdlmain.cpp: In function ‘void drawmenu(Bitu)’:
sdlmain.cpp:1866:20: warning: unused parameter ‘val’ [-Wunused-parameter]
 1866 | void drawmenu(Bitu val) {
      |               ~~~~~^~~
sdlmain.cpp: In function ‘Bitu GFX_SetSize(Bitu, Bitu, Bitu, double, double, GFX_CallBack_t)’:
sdlmain.cpp:1879:10: warning: unused variable ‘diff’ [-Wunused-variable]
 1879 |     bool diff = width != sdl.draw.width || height != sdl.draw.height;
      |          ^~~~
sdlmain.cpp: In function ‘void GUI_StartUp()’:
sdlmain.cpp:3802:10: warning: unused variable ‘pos’ [-Wunused-variable]
 3802 |     char pos[100];
      |          ^~~
sdlmain.cpp: In function ‘void HandleVideoResize(void*)’:
sdlmain.cpp:4097:23: warning: comparison of integer expressions of different signedness: ‘UINT32’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
 4097 |         if (new_width == ResizeEvent->w && new_height == ResizeEvent->h) return;
      |             ~~~~~~~~~~^~~~~~~~~~~~~~~~~
sdlmain.cpp:4097:55: warning: comparison of integer expressions of different signedness: ‘UINT32’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
 4097 |         if (new_width == ResizeEvent->w && new_height == ResizeEvent->h) return;
      |                                            ~~~~~~~~~~~^~~~~~~~~~~~~~~~~
sdlmain.cpp: In function ‘void GFX_Events()’:
sdlmain.cpp:6067:6: error: ‘SetIMPosition’ was not declared in this scope
 6067 |      SetIMPosition();
      |      ^~~~~~~~~~~~~
In file included from ../../include/../src/dos/../libs/libchdr/chd.h:49,
                 from ../../include/../src/dos/cdrom.h:38,
                 from ../../include/bios_disk.h:24,
                 from sdlmain.cpp:128:
../../include/../src/dos/../libs/libchdr/coretypes.h: At global scope:
../../include/../src/dos/../libs/libchdr/coretypes.h:31:15: warning: ‘size_t core_fsize(FILE*)’ defined but not used [-Wunused-function]
   31 | static size_t core_fsize(core_file *f)
      |               ^~~~~~~~~~
cc1plus: note: unrecognized command-line option ‘-Wno-int-to-void-pointer-cast’ may have been intended to silence earlier diagnostics
cc1plus: note: unrecognized command-line option ‘-Wno-int-to-void-pointer-cast’ may have been intended to silence earlier diagnostics
make[3]: *** [Makefile:438: sdlmain.o] Error 1
make[3]: Leaving directory '/home/xxx/Downloads/dosbox-x/src/gui'
make[2]: *** [Makefile:541: all-recursive] Error 1
make[2]: Leaving directory '/home/xxx/Downloads/dosbox-x/src'
make[1]: *** [Makefile:403: all-recursive] Error 1
make[1]: Leaving directory '/home/xxx/Downloads/dosbox-x'
make: *** [Makefile:336: all] Error 2

Steps to reproduce the behaviour

  1. ./autogen.sh
  2. ./configure
  3. make

Expected behavior

compile dosbox-x

What operating system(s) this bug have occurred on?

debian 11 x86_64 with libsdl-1.2

What version(s) of DOSBox-X have this bug?

v2023.05.01 and master

Used configuration

No response

Output log

No response

Additional information

However, it does work with sdl2 ( ./configure --enable-sdl2 && make -j`nproc`) for those looking for an easy fix (assuming sdl2 is available on your system)

Have you checked that no similar bug report(s) exist?

Code of Conduct & Contributing Guidelines

rderooy commented 1 year ago

it would appear that you are compiling against the system SDL v1 instead of the bundled one. Using the system SDL v1 will not work.