Posted: . At: 9:42 AM. This was 4 weeks ago. Post ID: 19431
Page permalink. WordPress uses cookies, or tiny pieces of information stored on your computer, to verify who you are. There are cookies for logged in users and for commenters.
These cookies expire two weeks after they are set.


How to install prboom-plus on Linux and run Doom.


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.


Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.