build under debian8 (amd64)

edited 2015 Mar 3 in Technical Support
Hi,

Just discovered doomsday and wanted to try it.
I Cloned github repository.
commit e4ad6500d0fc90f3d3ecb40f8ae74145654e099a
Author: Jaakko Keränen <jaakko.keranen@iki.fi>
Date:   Fri Feb 13 10:47:48 2015 +0200

Followed:
http://dengine.net/dew/index.php?title= ... nd_running
Edited config.pri and added PREFIX = $$HOME/usr

Started make, I've got an error (using debian gcc 4.9.0-7)
make[2]: Entering directory '/home/matt/doomsday.git/doomsday/plugins/doom'
gcc -c -m64 -pipe -std=c99 -fms-extensions -I/usr/include/assimp -O2 -D_REENTRANT -Werror-implicit-function-declaration -fdiagnostics-show-option -fPIC -DQT_WEBKIT -DNDEBUG -DDENG_64BIT_HOST -DUNIX -DDENG_X11 -DDENG_BASE_DIR="\"/local/share/doomsday/\"" -DDENG_LIBRARY_DIR="\"/local/lib/doomsday/\"" -DDENG_NO_FIXED_ASM -DDENG_NO_RANGECHECKING -D__JDOOM__ -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4 -I../../api -I../../libcore/include -I../../libdoomsday/include -I../../liblegacy/include -I../common/include -I/portable/include -I../../external/lzss/portable/include -I../../libgui/include -Iinclude -I. -o hu_pspr.o ../common/src/hu_pspr.c
In file included from include/jdoom.h:36:0,
                 from ../common/src/hu_pspr.c:33:
include/../../doom/include/d_config.h:79:5: error: unknown type name ‘libcommon_config_t’
     libcommon_config_t common;
     ^
../common/src/hu_pspr.c: In function ‘HU_PSpriteYOffset’:
../common/src/hu_pspr.c:92:29: error: request for member ‘plrViewHeight’ in something not a structure or union
     float offy = (cfg.common.plrViewHeight - DEFAULT_PLAYER_VIEWHEIGHT) * 2;
                             ^
../common/src/hu_pspr.c:110:49: error: request for member ‘statusbarScale’ in something not a structure or union
         offy -= (float) (ST_HEIGHT) * cfg.common.statusbarScale - 16;
                                                 ^
Makefile:562: recipe for target 'hu_pspr.o' failed
make[2]: *** [hu_pspr.o] Error 1
make[2]: Leaving directory '/home/matt/doomsday.git/doomsday/plugins/doom'
Makefile:134: recipe for target 'sub-doom-make_default' failed
make[1]: *** [sub-doom-make_default] Error 2

Any hints appreciated!

Regards,
Matt

Comments

  • I suspect this is a problem with our build configuration for the game plugins. Namely, "common/include" should have priority over "libcore/include", and because both have a "config.h", it's probably ending up using the wrong header.

    EDIT: Nope, the config seems fine actually. What are the exact commands that you used for qmake and make, and in which directory are you building?
  • Hi,

    Restarted from scratch.
    $ cd doomsday
    $ git diff
    diff --git a/doomsday/config.pri b/doomsday/config.pri
    index c1cde11..4d1baa3 100644
    --- a/doomsday/config.pri
    +++ b/doomsday/config.pri
    @@ -40,6 +40,7 @@
     # Read-only options (do not set manually):
     # - deng_debug                  Debug build (due to CONFIG+=debug).
     
    +PREFIX= $$HOME/local
     QT -= core gui
     CONFIG *= thread
    
    $ qmake -r ../doomsday/doomsday.pro CONFIG+=deng_notools
    ...
    Reading /home/matt/doomsday.git/doomsday/libappfw/libappfw.pro
    Reading /home/matt/doomsday.git/doomsday/libdoomsday/libdoomsday.pro
    Traceback (most recent call last):
      File "/home/matt/doomsday.git/doomsday/libdoomsday/../build/scripts/buildpackage.py", line 70, in <module>
        p.build(sys.argv[2])
      File "/home/matt/doomsday.git/doomsday/libdoomsday/../build/scripts/buildpackage.py", line 29, in build
        pack = zipfile.ZipFile(outputName, 'w', zipfile.ZIP_DEFLATED)        
      File "/usr/lib/python2.7/zipfile.py", line 756, in __init__
        self.fp = open(file, modeDict[mode])
    IOError: [Errno 21] Is a directory: '/home/matt/doomsday.git/doomsday/libdoomsday/../net.dengine.base.pack'
    Reading /home/matt/doomsday.git/doomsday/client/client.pro
    Wrote /home/matt/doomsday.git/doomsday/client/../net.dengine.client.pack (contains 80 files).
    Reading /home/matt/doomsday.git/doomsday/server/server.pro
    Reading /home/matt/doomsday.git/doomsday/plugins/plugins.pro
    ...
    
    $ make
    ...
    gcc -c -m64 -pipe -std=c99 -fms-extensions -I/usr/include/assimp -O2 -D_REENTRANT -Werror-implicit-function-declaration -fdiagnostics-show-option -fPIC -DQT_WEBKIT -DNDEBUG -DDENG_64BIT_HOST -DUNIX -DDENG_X11 -DDENG_BASE_DIR="\"/local/share/doomsday/\"" -DDENG_LIBRARY_DIR="\"/local/lib/doomsday/\"" -DDENG_NO_FIXED_ASM -DDENG_NO_RANGECHECKING -D__JDOOM__ -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4 -I../../api -I../../libcore/include -I../../libdoomsday/include -I../../liblegacy/include -I../common/include -I/portable/include -I../../external/lzss/portable/include -I../../libgui/include -Iinclude -I. -o hu_pspr.o ../common/src/hu_pspr.c
    In file included from include/jdoom.h:36:0,
                     from ../common/src/hu_pspr.c:33:
    include/../../doom/include/d_config.h:79:5: error: unknown type name ‘libcommon_config_t’
         libcommon_config_t common;
         ^
    ../common/src/hu_pspr.c: In function ‘HU_PSpriteYOffset’:
    ../common/src/hu_pspr.c:92:29: error: request for member ‘plrViewHeight’ in something not a structure or union
         float offy = (cfg.common.plrViewHeight - DEFAULT_PLAYER_VIEWHEIGHT) * 2;
                                 ^
    ../common/src/hu_pspr.c:110:49: error: request for member ‘statusbarScale’ in something not a structure or union
             offy -= (float) (ST_HEIGHT) * cfg.common.statusbarScale - 16;
                                                     ^
    Makefile:562: recipe for target 'hu_pspr.o' failed
    make[2]: *** [hu_pspr.o] Error 1
    make[2]: Leaving directory '/home/matt/doomsday.git/doomsday/plugins/doom'
    Makefile:134: recipe for target 'sub-doom-make_default' failed
    make[1]: *** [sub-doom-make_default] Error 2
    make[1]: Leaving directory '/home/matt/doomsday.git/doomsday/plugins'
    Makefile:375: recipe for target 'sub-plugins-make_default-ordered' failed
    make: *** [sub-plugins-make_default-ordered] Error 2
    

    On my original try, I used make -j8

    Hope this helps!
  • I pushed a commit that makes the include paths for config.h more explicit so it shouldn't get confused about it any more. Please pull and try again.
  • Hi again,

    $ cd doomsday
    $ qmake -r doomsday.pro
    $ make -j8
    $ make install
    $ cd build
    $ make install

    Compilation and install are ok.

    ---
    Changes in doosmday/config.pri

    PREFIX= $$HOME/local
    Evaluation of $HOME is not done. So I had to hardcode it:
    PREFIX= /home/me/local


    Thanks for your help!
  • Note that when using environment variables like HOME in qmake, you have two options: either the variable is evaluated at the time when qmake is run, or when building with make. The syntax is $$(HOME) for expanding the variable during the qmake run. The syntax for expanding at build time is $(HOME).

    $$HOME doesn't work because HOME is not a qmake variable.

    Also, you shouldn't change config.pri, but rather put any custom stuff in config_user.pri, as that will not be overwritten by future upgrades.
Sign In or Register to comment.