Configure script purpose

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Gauss
    Adept
    • Aug 2018
    • 110

    Configure script purpose

    What's the main purpose of the configure file? I know it detects system dependencies and allows for configuration options but it's a 7000+ lines of code script. I would also suggest the idea of using cmake for the whole build/test cycle. I have been using cmake for a few months and it's a really powerful tool for multiple systems developement. It's way superior to the old autogen+configure+makefile combo. So i would like to know from Nick or other devs how feasible would it be switching to cmake.
  • Pete Mack
    Prophet
    • Apr 2007
    • 6883

    #2
    You are not alone in hating config/autoconf. If you port to cmake, it'll get adopted.

    Comment

    • Gauss
      Adept
      • Aug 2018
      • 110

      #3
      I will try to get angband compiled with cmake when i finish exams. It doesn't look that complicated but i expect it to turn a nightmare when trying to build in windows and mac osx. I was trying also to port angband to python using derakon's code as basis but i left that aside months ago. Too much things to do and little spare time haha.

      Comment

      • Pete Mack
        Prophet
        • Apr 2007
        • 6883

        #4
        Windows and OSX each have makefile independent of configure, so it isn't necessary to get it all done at once.

        Comment

        • Flambard
          Scout
          • Mar 2019
          • 30

          #5
          Originally posted by Gauss
          What's the main purpose of the configure file?
          This is a bit disingenuous, it appears you know precisely, what "configure" is, you just don't like it.

          The actual script is NOT 7000+ lines long, it's more like 600. https://github.com/angband/angband/b...r/configure.ac

          The generated script works on everything that has a shell (not even bash, just any shell), thus it's completely dependency-free, which is the purpose.

          Yes, autoconf syntax is a bit terse, but is CMakeLists.txt really better? And yeah, autoconf has some problems, but so does CMake.

          Just my 2 cents, before jumping into next build system, maybe we should examine if that's even necessary?

          Comment

          • Pete Mack
            Prophet
            • Apr 2007
            • 6883

            #6
            @Flambard: also, vi is totally better than emacs

            Comment

            • Nick
              Vanilla maintainer
              • Apr 2007
              • 9637

              #7
              Originally posted by Pete Mack
              @Flambard: also, vi is totally better than emacs
              You take that back.
              One for the Dark Lord on his dark throne
              In the Land of Mordor where the Shadows lie.

              Comment

              • Cuboideb
                Adept
                • May 2020
                • 196

                #8
                Or... you q! that

                Comment

                • Pete Mack
                  Prophet
                  • Apr 2007
                  • 6883

                  #9
                  Sorry Nick--
                  I just had to swing at a hanging curve ball, right over the middle of the plate.


                  More to the point, I wholeheartedly endorse the opinion in this thread. Autoconf works...except when it doesn't--at which poiny you are screwed .


                  Originally posted by Nick
                  You take that back.

                  Comment

                  • Gauss
                    Adept
                    • Aug 2018
                    • 110

                    #10
                    Originally posted by Flambard
                    This is a bit disingenuous, it appears you know precisely, what "configure" is, you just don't like it.

                    The actual script is NOT 7000+ lines long, it's more like 600. https://github.com/angband/angband/b...r/configure.ac

                    The generated script works on everything that has a shell (not even bash, just any shell), thus it's completely dependency-free, which is the purpose.

                    Yes, autoconf syntax is a bit terse, but is CMakeLists.txt really better? And yeah, autoconf has some problems, but so does CMake.

                    Just my 2 cents, before jumping into next build system, maybe we should examine if that's even necessary?
                    If you have a look at github, many FOSS projects have jumped to cmake, even NASA uses it for some of their projects. I didn't say autoconf is bad, it's just that i think that building with cmake is way more professional and clean. It would improve the testing and developement IMO. It was just a suggestion though, also the magic of open source is that if something doesn't convince you, then just change it, so that's why i'm porting it to cmake. I will release it when i manage to have a clean testing build so everyone can try it and have an opinion about it. Also the integration with external libraries like SDL for example is better with cmake.

                    Comment

                    • Adriankhl
                      Rookie
                      • May 2020
                      • 3

                      #11
                      Originally posted by Flambard
                      This is a bit disingenuous, it appears you know precisely, what "configure" is, you just don't like it.

                      The actual script is NOT 7000+ lines long, it's more like 600. https://github.com/angband/angband/b...r/configure.ac

                      The generated script works on everything that has a shell (not even bash, just any shell), thus it's completely dependency-free, which is the purpose.

                      Yes, autoconf syntax is a bit terse, but is CMakeLists.txt really better? And yeah, autoconf has some problems, but so does CMake.

                      Just my 2 cents, before jumping into next build system, maybe we should examine if that's even necessary?
                      Depends on how much do you love Windows, cmake integrates much better with different compilation settings on Windows. For example, how can autotools manage clang-cl + vcpkg + windows SDK?

                      Comment

                      • fph
                        Veteran
                        • Apr 2009
                        • 1030

                        #12
                        Originally posted by Adriankhl
                        Depends on how much do you love Windows
                        If you put it this way, I'm not sure it's an argument in your favor.
                        --
                        Dive fast, die young, leave a high-CHA corpse.

                        Comment

                        • Adriankhl
                          Rookie
                          • May 2020
                          • 3

                          #13
                          Originally posted by fph
                          If you put it this way, I'm not sure it's an argument in your favor.
                          Well, like it or not, the dominance of Windows desktop is not going away. I used to hate Windows. However, I am starting to realize the importance of big companies behind open source software, and Microsoft is getting better these days. If we cannot ignore the presence of Windows, and there are existing open source, cross-platform solutions, why not love Windows (and ourselves ) more to make use of those tools.

                          Comment

                          • aNACHRONiST
                            Rookie
                            • Aug 2020
                            • 14

                            #14
                            Many legacy platforms such as Amiga do not have cmake tools available. However, we can use configure, makefile, etc. Therefore, I would not like to see cmake adopted. Angband is, at heart, a text-based terminal game. It would be a shame to see it unavailable on classic systems.

                            Comment

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