I am looking to learn how the mk build system used by vanilla and FA works. Can anyone point me in the right direction?
Mk build system?
Collapse
X
-
Pretty much it's just 'look at the existing makefiles'. It's fairly simple to use, relative to most other autotools-based build systems—which is one of the reasons I ported V to it. My guess is FA uses it for the same reason."The Earth...is for the living. The dead have neither rights nor powers on it." -- Thomas Jefferson
"Aim above morality. Be not simply good, be good for something." -- Mark TwainComment
-
You know I need more info than that to try it out.
- Which files are the config files that are edited?
- Where do I get the files that are used to run the build system and which ones are they?
- What do they replace compared to standard autotools?
- Where do I find documentation?
- What commands are run to set up the build system?Comment
-
It is optimized for manual maintenance, and relies heavily on gmake extensions. Follow the include directives and all shall become clear.Zaiband: end the "I shouldn't have survived that" experience. V3.0.6 fork on Hg.
Zaiband 3.0.10 ETA Mar. 7 2011 (Yes, schedule slipped. Latest testing indicates not enough assert() calls to allow release.)
Z.C++: pre-alpha C/C++ compiler system (usable preprocessor). Also on Hg. Z.C++ 0.0.10 ETA December 31 2011Comment
-
Zaiband: end the "I shouldn't have survived that" experience. V3.0.6 fork on Hg.
Zaiband 3.0.10 ETA Mar. 7 2011 (Yes, schedule slipped. Latest testing indicates not enough assert() calls to allow release.)
Z.C++: pre-alpha C/C++ compiler system (usable preprocessor). Also on Hg. Z.C++ 0.0.10 ETA December 31 2011Comment
-
- Where do I get the files that are used to run the build system and which ones are they?
- What do they replace compared to standard autotools?
- Where do I find documentation?
- What commands are run to set up the build system?- sh autogen.sh # only if you're working with a development snapshot which doesn't have a ./configure script already.
- ./configure ...
- make
- make install
Additionally, the bare buildsystem may be obtained, with comments where appropriate, via the original author's mercurial repository."The Earth...is for the living. The dead have neither rights nor powers on it." -- Thomas Jefferson
"Aim above morality. Be not simply good, be good for something." -- Mark TwainComment
-
"The Earth...is for the living. The dead have neither rights nor powers on it." -- Thomas Jefferson
"Aim above morality. Be not simply good, be good for something." -- Mark TwainComment
-
Your problem is that http://www.atheme.org/ has pulled virtually all references to their Objective Make build system from the Internet. I think Angband is the last holdout on accurate documentation. (Not even the project infighting notes over this are making Google now.)Comment
-
Speaking of build systems... would there by any interest in replacing the current Angband one with a CMake-based one? I believe it should work better for Windows users (at least if building using MSVC is supported for Vanilla in general), and it is much simpler and saner when handling things like choosing between clang/gcc and carrying flags like "-fsanitize" over to the linking stage. (Though, I believe the latter is actually a problem with the Vanilla makefile(s), rather than anything autoconf related per se. I couldn't see any simple way of fixing that generally so I just hacked around in the makefile until I got a Clang+-fsanitize build going.)
It would also make support for (at least some) IDEs better, since e.g. QtCreator has support for CMake.
EDIT: I should say: I already have a working CMake build set up for Tome2-AH, and it should be relatively straightforward to port that to Angband.Comment
Comment