Open supin96 opened 2 years ago
Does Haiku OS have an #ifdef that code can use to specialize for it?
I was not aware of this, but Linux readdir appears to provide d_type.
The correct case for Haiku OS is to readdir() and then stat() the d->d_name to determine if it's a normal file.
Haiku OS have #ifdef HAIKU.
When building on Haiku R1/beta4 with the following command
./configure --enable-sdl2; make
the compile stage finishes, but linking the application quits with unresolved dependencies, similar to:
/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/11.2.0/../../../../x86_64-unknown-haiku/bin/ld: dos/libdos.a(drive_physfs.o): in function `__PHYSFS_platformCalcBaseDir':
/boot/home/tmp/dosbox/src/src/dos/../libs/physfs/physfs_platform_haiku.cpp:154: undefined reference to `BEntry::BEntry(char const*, bool)'
Appending -lbe
to LIBS
in src/Makefile
fixes this issue:
LIBS = -L/packages/libsdl2-2.0.20-3/.self/develop/lib -lSDL2 -lGL -lnetwork -lbsd -L/packages/freetype_bootstrap-2.12.1-1/.self/develop/lib -lfreetype -lSDL_net -lz -lpng -lz -liconv -lbe
@amol- , can you add that to your fix?
Oh, nice catch. I did build DosboxX with SDL2, but I might have missed it somehow. I'll open a PR to get this fixed.
Also there is more work that I plan to do on SDL2 for Haiku, as there are currently major issues when using SDL2. Right now SDL1 should be used on Haiku
Question
I can't compile DOSBox-X in Haiku. I have problem: drives.cpp:261:22: error: 'struct dirent' has no member named 'd_type' 261 | if (dir->d_type == DT_REG) | ^
~drives.cpp:261:32: error: 'DT_REG' was not declared in this scope 261 | if (dir->d_type == DT_REG) | ^~Have you checked that no similar question(s) exist?
Code of Conduct & Contributing Guidelines