Compiling Hengband: "fatal error: util.h: No such file or directory"

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • backwardsEric
    Knight
    • Aug 2019
    • 527

    #61
    Originally posted by smbhax
    Does anyone else's compiled GCU hengband.exe come out at over 220 MB? The other 'bands I compile are like 1/20th of that size, and heck the downloaded Windows graphical Hengband's exe is like 3 MB...so 220 seems a little weird. = P
    Compiled on a Mac, the executable for 2.2.1 is 2.4 MB while 3.0.0 beta is 4.2 MB; so some inflation due to the C->C++ change or other code changes since 2.2.1. The default configuration (at least on the Mac) includes debugging symbols. I'd suspect that those might be the reason for the large executable size on Cygwin. Configuring with CXXFLAGS set to "-g0 -O2" and building would verify if that's the case.

    Originally posted by smbhax
    And Hengband's compiles take substantially longer than the other 'bands I've compiled.
    That seems like par for the course for C++; a Linux build for "make distcheck" of Hengband 2.2.1 takes about 3 minutes on GitHub's hardware and takes about 25 minutes for the Hengband 3.0.0 beta.

    Comment

    • smbhax
      Swordsman
      • Oct 2021
      • 340

      #62
      Originally posted by backwardsEric
      Configuring with CXXFLAGS set to "-g0 -O2" and building would verify if that's the case.
      Thanks! That did the trick. : )

      Code:
      make install
      gives me a 223 MB exe;

      Code:
      make install CXXFLAGS="-g0 -O2"
      (first time of course I had to do

      Code:
      make clean install CXXFLAGS="-g0 -O2"
      ) gives me a 4 MB exe.
      My Angband videos

      Comment

      • smbhax
        Swordsman
        • Oct 2021
        • 340

        #63
        (I got curious as to what "GCU" stands for; Googling showed it as an Angband-exclusive abbreviation, at least as far as relates to video games. Anyway in older versions of Angband's main-gcu.c -- the oldest on the official site/repository appearing to be from 2.7.4 https://github.com/angband/angband/b...src/main-gcu.c , soon after Ben Harrison's 2.7.0 source file reorganization -- line 3 says

        Code:
        /* Purpose: Somewhat generic Unix Curses support for Angband */
        So G(eneric) C(urses) U(nix), I suppose--which could be a pun on "GNU," for "GNU Project," a software project that helped lead to the development of Linux; "GNU" is a recursive acronym for "GNU's Not Unix." https://en.wikipedia.org/wiki/GNU_Project

        Later versions of main-gcu obscured the (possible) meaning; Hengband's for instance has

        Code:
        /* Purpose: Allow use of Unix "curses" with Angband -BEN- */
        "Curses" itself was a pun on "cursor optimization." https://en.wikipedia.org/wiki/Curses...mming_library)

        ~~~~~~~~~~~~

        "Hengband" appears to be a punning acronym, well it's the sound, "hengubando," you get from four Japanese characters, which have individual meanings:

        "hen" - strange
        "gu" - stupid
        "ban" - barbarian
        "do" - anger

        ^ That's from Google Translate. That last one is spelled out as "ika" on their translation form, but pronounced uh possibly a few ways, one of which is "do." The forum's encoding doesn't accept the Japanese characters themselves; you can see them here: https://translate.google.com/?sl=ja&...2&op=translate

        So anyway, they have a firm grasp on the essence of the game. : D)
        Last edited by smbhax; February 13, 2022, 06:51.
        My Angband videos

        Comment

        • Pete Mack
          Prophet
          • Apr 2007
          • 6883

          #64
          Curses was originally ascii gfx package built on stty. Now includes unicode support. The original ANGBAND UNIX support used stty, which is where macros came in.

          Which reminds me:
          @Nick--
          Macros are non-optional in Sil, and presumably will be in Beleriand. There are a number of abilities that need to be toggled on/off by a single keystroke; fire arrows are the obvious one. This cannot be done with keymaps. (I first ran into this in ToME, where you needed to be able to change stance efficiently, trading stealth, saving throw, and perception for speed and damage.

          Comment

          • smbhax
            Swordsman
            • Oct 2021
            • 340

            #65
            Originally posted by Pete Mack
            Curses was originally ascii gfx package built on stty. Now includes unicode support. The original ANGBAND UNIX support used stty, which is where macros came in.
            Ah, and "stty" stands for "Set Teletype," according to Google. Looking through source code, I find curses support in some form all the way back to Umoria, although in 2.4 FrogKnows for instance it wasn't used on all systems, if I'm reading this right...and there's some stty stuff (sgttyb, ttyb) in there--which is gone by 2.6.1.
            Last edited by smbhax; February 3, 2022, 21:23.
            My Angband videos

            Comment

            • Nick
              Vanilla maintainer
              • Apr 2007
              • 9637

              #66
              Originally posted by Pete Mack
              Which reminds me:
              @Nick--
              Macros are non-optional in Sil, and presumably will be in Beleriand. There are a number of abilities that need to be toggled on/off by a single keystroke; fire arrows are the obvious one. This cannot be done with keymaps. (I first ran into this in ToME, where you needed to be able to change stance efficiently, trading stealth, saving throw, and perception for speed and damage.
              Thanks Pete, I'll watch out for that.
              One for the Dark Lord on his dark throne
              In the Land of Mordor where the Shadows lie.

              Comment

              • Gwarl
                Administrator
                • Jan 2017
                • 1025

                #67
                Originally posted by smbhax
                Ah, and "stty" stands for "Set Teletype," according to Google. Looking through source code, I find curses support in some form all the way back to Umoria, although in 2.4 FrogKnows for instance it wasn't used on all systems, if I'm reading this right...and there's some stty stuff (sgttyb, ttyb) in there--which is gone by 2.6.1.
                huh I remember looking at 2.6.1 and seeing strange ancient libraries and no curses and giving up on the idea of ever being able to compile it. (looked again, guess I misremembered. I do remember it being unlikely to ever compile)

                Comment

                Working...
                😀
                😂
                🥰
                😘
                🤢
                😎
                😞
                😡
                👍
                👎