Installing prboom-plus on Linux is a lot of fun. This is an extended source port of Doom that allows the use of extra line types from Boom.
I downloaded the source from GitHub.
(jcartwright@2403-4800-25af-b00--2) 192.168.1.5 Documents $ git clone https://github.com/coelckers/prboom-plus.git Cloning into 'prboom-plus'... remote: Enumerating objects: 35722, done. remote: Counting objects: 100% (44/44), done. remote: Compressing objects: 100% (29/29), done. remote: Total 35722 (delta 21), reused 28 (delta 15), pack-reused 35678 Receiving objects: 100% (35722/35722), 14.56 MiB | 3.76 MiB/s, done. Resolving deltas: 100% (28814/28814), done. |
Then navigate to the proper directory and then run cmake to configure the build.
(jcartwright@2403-4800-25af-b00--2) 192.168.1.5 prboom2 $ cmake . CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message): The package name passed to `find_package_handle_standard_args` (SDL2main) does not match the name of the calling package (SDL2). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindSDL2.cmake:298 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:89 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message): The package name passed to `find_package_handle_standard_args` (SDL2main) does not match the name of the calling package (SDL2). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindSDL2.cmake:298 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) cmake/FindSDL2_image.cmake:114 (find_package) CMakeLists.txt:93 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. CMake Warning (dev) at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:438 (message): The package name passed to `find_package_handle_standard_args` (SDL2main) does not match the name of the calling package (SDL2). This can lead to problems in calling code that expects `find_package` result variables (e.g., `_FOUND`) to follow a certain pattern. Call Stack (most recent call first): cmake/FindSDL2.cmake:298 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) cmake/FindSDL2_mixer.cmake:112 (find_package) CMakeLists.txt:101 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. |
As long as you have libmad, libogg and libvorbis, this should be sufficient to run prboom.
Then run make to build the source code.
(jcartwright@2403-4800-25af-b00--2) 192.168.1.5 prboom2 $ make [ 1%] Building C object data/CMakeFiles/rdatawad.dir/rd_main.c.o [ 2%] Building C object data/CMakeFiles/rdatawad.dir/rd_util.c.o [ 3%] Building C object data/CMakeFiles/rdatawad.dir/rd_output.c.o [ 3%] Building C object data/CMakeFiles/rdatawad.dir/rd_sound.c.o [ 4%] Building C object data/CMakeFiles/rdatawad.dir/rd_palette.c.o [ 5%] Building C object data/CMakeFiles/rdatawad.dir/rd_graphic.c.o [ 6%] Linking C executable rdatawad [ 6%] Built target rdatawad [ 6%] Building C object src/CMakeFiles/prboom-plus-game-server.dir/d_server.c.o In file included from /usr/include/SDL2/SDL_config.h:58, from /usr/include/SDL2/SDL_stdinc.h:31, from /usr/include/SDL2/SDL_main.h:25, from /usr/include/SDL2/SDL.h:32, from /home/jcartwright/Documents/prboom-plus/prboom2/src/d_server.c:54: /usr/include/SDL2/SDL_config-x86_64.h:542:58: warning: "_HAVE_STDINT_H" is not defined, evaluates to 0 [-Wundef] 542 | #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) | ^~~~~~~~~~~~~~ [ 7%] Building C object src/CMakeFiles/prboom-plus-game-server.dir/SDL/i_network.c.o In file included from /usr/include/SDL2/SDL_config.h:58, from /usr/include/SDL2/SDL_stdinc.h:31, from /usr/include/SDL2/SDL_main.h:25, from /usr/include/SDL2/SDL.h:32, from /home/jcartwright/Documents/prboom-plus/prboom2/src/SDL/i_network.c:53: /usr/include/SDL2/SDL_config-x86_64.h:542:58: warning: "_HAVE_STDINT_H" is not defined, evaluates to 0 [-Wundef] 542 | #if !defined(_STDINT_H_) && (!defined(HAVE_STDINT_H) || !_HAVE_STDINT_H) |
If this is successful, you will get a compiled binary.
[100%] Linking CXX executable ../prboom-plus
[100%] Built target prboom-plus
(jcartwright@2403-4800-25af-b00--2) 192.168.1.5 prboom2 $ su
Password:
[root@2403-4800-25af-b00--2 prboom2]# make install
Consolidate compiler generated dependencies of target rdatawad
[ 6%] Built target rdatawad
Consolidate compiler generated dependencies of target prboom-plus-game-server
[ 9%] Built target prboom-plus-game-server
[ 9%] Built target prboomwad
Consolidate compiler generated dependencies of target prboom-plus
[100%] Built target prboom-plus
Then all that is left to do is install the compiled binaries.
(jcartwright@2403-4800-25af-b00--2) 192.168.1.5 prboom2 $ su Password: [root@2403-4800-25af-b00--2 prboom2]# make install Consolidate compiler generated dependencies of target rdatawad [ 6%] Built target rdatawad Consolidate compiler generated dependencies of target prboom-plus-game-server [ 9%] Built target prboom-plus-game-server [ 9%] Built target prboomwad Consolidate compiler generated dependencies of target prboom-plus [100%] Built target prboom-plus Install the project... -- Install configuration: "RelWithDebInfo" -- Installing: /usr/local/share/prboom-plus/prboom-plus.wad -- Installing: /usr/local/share/doc/prboom-plus/NEWS -- Installing: /usr/local/share/doc/prboom-plus/boom.txt -- Installing: /usr/local/share/doc/prboom-plus/DeePBSPV4specs.txt -- Installing: /usr/local/share/doc/prboom-plus/MBFFAQ.txt -- Installing: /usr/local/share/doc/prboom-plus/MBF.txt -- Installing: /usr/local/share/doc/prboom-plus/prboom-plus-usage.txt -- Installing: /usr/local/share/doc/prboom-plus/README.command-line -- Installing: /usr/local/share/doc/prboom-plus/README.compat -- Installing: /usr/local/share/doc/prboom-plus/README.demos -- Installing: /usr/local/share/doc/prboom-plus/umapinfo.txt -- Installing: /usr/local/share/man/man5/prboom-plus.cfg.5 -- Installing: /usr/local/share/man/man6/prboom-plus.6 -- Installing: /usr/local/share/man/man6/prboom-plus-game-server.6 -- Installing: /usr/local/bin/prboom-plus -- Installing: /usr/local/bin/prboom-plus-game-server |
After all of this, I could run prboom-plus and play my map. This worked just fine. The music does not work, as I did not have FluidSynth installed, but this does run. I had the Doom2.wad in the current directory, so this was able to be used by prboom.