How you building "with VS 2010 Ex" using nmake? nmake is part of Win SDK.
Getting Angband from Github and compiling it
Collapse
This is a sticky topic.
X
X
-
I have installed Visual Studio 2010 Express. I choose Visual Studio 2010 Express -> Visual Studio Tools -> Visual Studio 2010 Command Line. I navigate the to angband src directory and type nmake /F Makefile.nmake.
I am not trying to build within the IDE if thats what you are asking.Comment
-
That's only beginning :-)4. Change directory into dirname, and that's basically it - you are now able to build
Could someone describe the sequence of the next steps for Linux?
./autogen.sh
./configure
make distclean
In my case (Ubuntu)./autogen.sh output is
So i guess I'm doing something wrong.*info* running aclocal (-I m4)
./autogen.sh: 49: aclocal: not found
*error* aclocal failed. (exit code = 127)Comment
-
Type aclocal at a command prompt. You might see something like
in which case you need to install automake. It is also likely that you will need to install libx11-dev.Code:aclocal The program 'aclocal' can be found in the following packages: * automake * automake1.10 * automake1.4 * automake1.9 * automake1.7 Try: sudo apt-get install <selected package>
Comment
-
That's a neat feature. On my system you'd have to use apt-cache search aclocal or apt-file search aclocal. Anyway, the full set of deps can be installed withType aclocal at a command prompt. You might see something like
in which case you need to install automake. It is also likely that you will need to install libx11-dev.Code:aclocal The program 'aclocal' can be found in the following packages: * automake * automake1.10 * automake1.4 * automake1.9 * automake1.7 Try: sudo apt-get install <selected package>
sudo apt-get install build-essential debhelper autotools-dev libncursesw5-dev libglade2-dev libsdl1.2-dev libsdl-mixer1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-net1.2-dev libsdl-ttf2.0-dev libsqlite3-dev libtexlive-latex-extra
Note that you can get away with fewer if you don't need certain modules built:
libncursesw5-dev is for the -mgcu port
libglade2-dev is for the -mgtk port
libsdl* are for the -msdl port
libsqlite3-dev is for the -mstats module (needs 3GB RAM!)
You can remove any of these, though if you remove libglade2-dev you will need to install libx11-dev explicitly to build the -mx11 port, along with libice6-dev and libsm6-dev.
texlive-latex-extra is for the 3.3.x documentation, which has been replaced in 3.4-dev versions by RST docs, so this is only necessary if you are building 3.3.x
Also, please note that make distclean will undo the changes made by running autogen.sh and configure, so the correct sequence of commands is
./autogen.sh
./configure --with-my-options
make
make install"Been away so long I hardly knew the place, gee it's good to be back home" - The BeatlesComment
-
Under the old 3.0.9 build, it was possible to have a shared score file across the entire multi-user system under Linux. In 3.3.2, I haven't figured out how to convince Angband to do that.
I've tried setting up the ANGBAND_PATH environment variable (using a .sh file under /etc/profile.d), but it still puts everything under ~/.angband. Is that variable still used?Comment
-
No. If you've installed --with-setgid=games (or indeed any group), the score file should be in /var/games/angband/scores.raw. Can you pastebin the output of ./configure, and also the output of make install?Under the old 3.0.9 build, it was possible to have a shared score file across the entire multi-user system under Linux. In 3.3.2, I haven't figured out how to convince Angband to do that.
I've tried setting up the ANGBAND_PATH environment variable (using a .sh file under /etc/profile.d), but it still puts everything under ~/.angband. Is that variable still used?"Been away so long I hardly knew the place, gee it's good to be back home" - The BeatlesComment
-
A Wild Noob Appears
Hey there. I'm a competent programmer (and instructor, though I prefer Java for my own projects) who unfortunately hasn't set up a C++ project by herself in ages. I have the latest build of Angband and v4 both set up under NetBeans, but when I try to build either one I get messages saying buildsys.mk cannot find various other *.mk files.
The weird thing is I can clearly see where it's looking for *.mk files in buildsys.mk, but those files are named *.mk.in in the repository. Changing the name of the file definitely doesn't fix it. I haven't tried changing the names in buildsys.mk because that seems a stupid guess too.
I'm certain I'm doing something unacceptably stupid but I hope that asking this question will save me a ton of time futzing with the settings in an unfamiliar environment.
P.S. Is there a Java version of Angband-style roguelikes available anywhere which uses graphical tiles, aside from the impending ToME rebirth? That'd be a much faster tool for what I want to do (my own variant, open-source).Comment
-
Assuming you're trying to build on Windows, unfortunately our Windows build chain is not very well-documented, and the people who know how to do it (mostly Blubaron, IIRC) aren't around much. Mostly the Windows build is generated by cross-compiling on Linux (i.e. one of our Linux devs uses a special makefile that generates a Windows binary).
Generally-speaking, the recommended build method is to use GCC and the "make" command on the command line. For example, on OSX I'd do "make -f Makefile.osx".
I did a quick Google search for Java roguelikes and found this list and this engine project that doesn't look like it's been updated recently but may still be helpful.
Sorry I don't have more useful information. Good luck!Comment
-
To add to Derakon's hints, if you have access to the autoconf toolchain, you can build the *.mk files from the *.mk.in files by running the shell script autogen.sh at the top level of the source tree, and then by running configure with the options you desire. (Run ./configure --help to see the available flags.)Hey there. I'm a competent programmer (and instructor, though I prefer Java for my own projects) who unfortunately hasn't set up a C++ project by herself in ages. I have the latest build of Angband and v4 both set up under NetBeans, but when I try to build either one I get messages saying buildsys.mk cannot find various other *.mk files.
The weird thing is I can clearly see where it's looking for *.mk files in buildsys.mk, but those files are named *.mk.in in the repository. Changing the name of the file definitely doesn't fix it. I haven't tried changing the names in buildsys.mk because that seems a stupid guess too.Comment
-
First off, much thanks for the rapid response.
Unfortunately, that command is what NetBeans was trying. Invoking it from within Cygwin produces the same errors.
For an exact quote, when building angband's current release (3.3.2):
As for the Java question, I probably deserve a LMGTFY for that one. :P I was just curious if you had any inside knowledge of recent Java roguelike activity beyond what I might readily find, but I appreciate the look.Code:[B]$ make -f Makefile[/B] mk/buildsys.mk:21: mk/extra.mk: No such file or directory mk/buildsys.mk:377: mk/sinclude.mk: No such file or directory make: *** No rule to make target `mk/sinclude.mk'. Stop.
Comment
-
Aha! Now we're on the right track.To add to Derakon's hints, if you have access to the autoconf toolchain, you can build the *.mk files from the *.mk.in files by running the shell script autogen.sh at the top level of the source tree, and then by running configure with the options you desire. (Run ./configure --help to see the available flags.)
Several questions:
1) autogen.sh kicks back:
This sounds like I don't have something installed through Cygwin that I need in order to complete the pre-compilation step, or maybe it's just a path issue. I'm not nixie-enough to know offhand, but I'm looking online for more info...Code:[B]$ ./autogen.sh[/B] *info* running aclocal ./autogen.sh: line 38: aclocal: command not found *error* aclocal failed. (exit code = 127)
2) Will I need to rerun autogen.sh every time I clean and build? If so, I'll make a batch file and have NetBeans run that instead...if not I'll just do it the once.
EDIT:
3) Two attempts at ./configure, under the root directory for the project:
Code:[B]$ ./configure[/B] -bash: ./configure: No such file or directory [B]$ ./configure.ac[/B] ./configure.ac: line 1: dnl: command not found ./configure.ac: line 2: syntax error near unexpected token `[Angband],' ./configure.ac: line 2: `AC_INIT([Angband], [3.3.2], [bugs@rephial.org], [angband])'
Last edited by TricksterWolf; September 3, 2012, 03:00.Comment
-
Yes, you need the autoconf package.Aha! Now we're on the right track.
Several questions:
1) autogen.sh kicks back:
This sounds like I don't have something installed through Cygwin that I need in order to complete the pre-compilation step, or maybe it's just a path issue. I'm not nixie-enough to know offhand, but I'm looking online for more info...Code:[B]$ ./autogen.sh[/B] *info* running aclocal ./autogen.sh: line 38: aclocal: command not found *error* aclocal failed. (exit code = 127)
No, just the once should be sufficient.
The autogen.sh script creates the configure script from configure.ac, and so you'll need autoconf before you can proceed.👍 1Comment
-
Thank you both for the help!
I'll add the package and test it again soon...my time is not free at the moment.Comment
Comment