gmake for Box2D and SOIL?

edited July 2013 in Help request
First off, this tool looks awesome so far, thank you! I've been able to run through the first 8 basic tutorials with no problems.

1) I was able to compile ORX with the modified source code (extern) and the src zip files on the sourceforge. Now, I prefer the commandline and would love to have a script to compile everything, but I wasn't able to see a makefile for Bod2D or SOIL. Does one exist that I missed? If so, please tell me where. If not, is there any ~simple~ way to compile for linux64 via command line?

2) Does the external libraries that come with ORX append or modify? IE: Does ORX Box2D still have all the same old functionality of Box2D_2.1.3 or has it changed?

Thanks!

Comments

  • edited July 2013
    PauloftheWest wrote:
    First off, this tool looks awesome so far, thank you! I've been able to run through the first 8 basic tutorials with no problems.
    Hi PauloftheWest and welcome here! :)

    Glad you enjoy your discovery so far!
    1) I was able to compile ORX with the modified source code (extern) and the src zip files on the sourceforge. Now, I prefer the commandline and would love to have a script to compile everything, but I wasn't able to see a makefile for Bod2D or SOIL. Does one exist that I missed? If so, please tell me where. If not, is there any ~simple~ way to compile for linux64 via command line?
    Unfortunately there are only codelite projects for those external dependencies. However you should be able to generate GNU makefiles for them from within codelite. It's not perfect but that's all I can offer for now.
    My plan is to eventually add premake scripts to all the dependencies at some point, but I'm not sure when I'll have the opportunity to do so.

    When you're done with the basic tutorials, you can look at the community ones (they're all accessible from the wiki) and some more advanced tutorials such as https://bitbucket.org/iarwain/resource that haven't been wiki-ed yet unfortunately, by lack of time.
    2) Does the external libraries that come with ORX append or modify? IE: Does ORX Box2D still have all the same old functionality of Box2D_2.1.3 or has it changed?
    They are not vanilla versions, most of the time, no. For example Box2D has 2 major changes compared to the vanilla 2.1.3 release: it has some support for frictionless non-sliding contacts and, more important, it has support for per-body custom gravity.

    From the top of my head, others are:
    - GLFW contains mostly a few fixes and some modifications such as refresh rate support
    - openal-soft also contains a couple of fixes
    - stb_vorbis has been modified to allow the use of orx's new resource system in place of the default file system accessors
    - SOIL has minor modifications but I don't remember which ones
    - premake has some fixes and a better support of visual studio
    - libsndfile has some heavy changes allowing it to be compiled with visual studio (which the author doesn't want to support anymore)

    The remaining external dependencies are either unmodified or mostly unused at this point (stb_truetype, SDL & SFML).
    Thanks!
    My pleasure! :) Don't hesitate if you have any other questions!
  • edited July 2013
    Understood. I was able to pull down the mercurial repo last night (after bitbucket came back up) and start compiling components under my Debian wheezy amd64 system. Unfortunately I don't see gmake for orx. Naturally since this is a repository, the build scripts may not have been implemented yet. So, are their scripts for Linux? If so, which do you suggest?

    Also, I have run through the basic 12 tutorials and I've discovered I'm new to the whole shader concept. From my understanding, the shader code in the .ini files is GLSL code which is compiled and linked at runtime and then stored on the GPU for processing. Is that correct?

    I will start to look at the tutorials on wiki and then the advance ones you posted. Hopefully then I'll have finalized my game idea and then be able to sit down and design!
  • edited July 2013
    PauloftheWest wrote:
    Understood. I was able to pull down the mercurial repo last night (after bitbucket came back up) and start compiling components under my Debian wheezy amd64 system. Unfortunately I don't see gmake for orx. Naturally since this is a repository, the build scripts may not have been implemented yet. So, are their scripts for Linux? If so, which do you suggest?
    Yes, you need to run premake in order to generate project files such as the GNU makefiles. As orx is not using a vanilla premake (it's kind of a tradition ;)), the binaries for all supported platform, including linux64, can be found in extern/premake/bin.

    You simply invoke it like this:
    cd code/build
    ../../extern/premake/bin/linux64/premake4 gmake
    
    That will create makefiles in the code/build/linux64/gmake folder.
    Also, I have run through the basic 12 tutorials and I've discovered I'm new to the whole shader concept. From my understanding, the shader code in the .ini files is GLSL code which is compiled and linked at runtime and then stored on the GPU for processing. Is that correct?
    That's quite correct. To be more precise, the shaders defined in config files are fragment shaders and they get executed for every fragment (ie., in our case, pixel) that get displayed on screen.
    I will start to look at the tutorials on wiki and then the advance ones you posted. Hopefully then I'll have finalized my game idea and then be able to sit down and design!
    Sounds good! Don't hesitate if you have any other questions.
    Good luck with your design! :)
  • edited July 2013
    Cool, thanks! Now, not that I want to be the bringer of problems, but I can't seem to run the Scroll Object binding tutorial located here:
    http://orx-project.org/wiki/en/orx/tutorials/community/acksys/scroll1

    After getting the latest from github (and then updating some of the code to work with orx 1.4) I was able to compile. Unfortunately when I run, I get:
    (gdb) run
    Starting program: /home/pwest/orx/OrxScroll-ObjectBinding/bin/ObjectBinding 
    warning: Could not load shared library symbols for linux-vdso.so.1.
    Do you need "set solib-search-path" or "set sysroot"?
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
    [14:40:13] [CONFIG] [orxConfig.c:orxConfig_Load():2962] [ObjectBinding.ini]: Begin include @../data/ObjectBinding.ini@
    [14:40:13] [CONFIG] [orxConfig.c:orxConfig_Load():2968] [ObjectBinding.ini]: End include @../data/ObjectBinding.ini@
    [14:40:13] [ASSERT] [orxParam.c:orxParam_DisplayHelp():715] [ASSERT] : <(sstParam.u32Flags & orxPARAM_KU32_MODULE_FLAG_READY) == orxPARAM_KU32_MODULE_FLAG_READY>
    
    Program received signal SIGTRAP, Trace/breakpoint trap.
    _orxDebug_Break () at ../../../src/debug/orxDebug.c:306
    306	  return;
    (gdb) info stack
    #0  _orxDebug_Break () at ../../../src/debug/orxDebug.c:306
    #1  0x00007ffff7926fd5 in orxParam_DisplayHelp ()
        at ../../../src/main/orxParam.c:715
    #2  0x0000000000407f4b in orx_Execute (_u32NbParams=1, 
        _azParams=0x7fffffffe388, _pfnInit=0x40adc4 <ScrollBase::StaticInit()>, 
        _pfnRun=0x40adea <ScrollBase::StaticRun()>, 
        _pfnExit=0x40ae10 <ScrollBase::StaticExit()>)
        at ../scroll/include/Scroll/orx/orx.h:241
    #3  0x0000000000408c7b in ScrollBase::Execute (this=0x612030, argc=1, 
        argv=0x7fffffffe388) at ../scroll/include/Scroll/ScrollBase.inl:67
    #4  0x000000000040bbf1 in Scroll<OrxScroll>::Execute (this=0x612030, argc=1, 
        argv=0x7fffffffe388) at ../scroll/include/Scroll/Scroll.inl:136
    #5  0x000000000040b69f in main (argc=1, argv=0x7fffffffe388)
        at OrxScroll.cpp:49
    (gdb)
    

    Any ideas on what happened? I've attached a patch, which I hopefully created correctly (I've never used git).

    Also, I've noticed numerous different build tools; CMake, codelite, VS, premake. Has there been a push to select one unified build environment? I noticed premake will build for make, Codelite, VS, and others (http://en.wikipedia.org/wiki/Premake). https://forum.orx-project.org/uploads/legacy/fbfiles/files/paulofthewest_compile.tgz
  • edited July 2013
    PauloftheWest wrote:
    Cool, thanks! Now, not that I want to be the bringer of problems, but I can't seem to run the Scroll Object binding tutorial located here:
    http://orx-project.org/wiki/en/orx/tutorials/community/acksys/scroll1
    [...]
    Any ideas on what happened? I've attached a patch, which I hopefully created correctly (I've never used git).
    I'd say that it's likely that all the versions are not synchronized.

    If I were you I'd:

    - Get the tutorial from the link you sent
    - Get the latest orx from https://bitbucket.org/orx/orx
    - Get the latest Scroll from https://bitbucket.orx/orx/scroll
    - Compile orx (embedded dynamic *)
    - Copy orx's headers to <tutorial>/include/Scroll/orx (after cleaning that folder)
    - Recompile the tutorial and link it with the correct version of orx you just built (without forgetting -D__orxDEBUG__ when linking against the debug library and making sure it's not defined when linking against the other versions)

    Try it and hopefully this time everything should be working just fine. :)
    Also, I've noticed numerous different build tools; CMake, codelite, VS, premake. Has there been a push to select one unified build environment? I noticed premake will build for make, Codelite, VS, and others (http://en.wikipedia.org/wiki/Premake). https://forum.orx-project.org/uploads/legacy/fbfiles/files/paulofthewest_compile.tgz
    Well it depends: build tools for what? :)

    Orx, its tools (orxcrypt/orxfontgen) and its tutorials are all using premake to generate whichever flavour of build project you want (codelite, code::blocks, visual studio, gmake, xcode, you name it!).
    The only exception (beside a couple of vestigial xode/visual projects that are still needed for now, but only really for me) is Android, which has handcrafted build projects.

    All the dependencies, however, are using their own build system so far. I plan on adding premake support for all of them at some point, but it's not done yet.

    As for the custom tutorials, well, the author is free to use whatever he/she likes, so it can be anything, really.
  • edited July 2013
    Awesome, thanks. For build environment I meant orx itself. I've learn it is easiest to stick with what people on the project are using.

    I'll keep looking into Scroll, it sounds very useful.
Sign In or Register to comment.