cross-compile update
Update the cross-compiling doc at the top.
Remove sys/msdos/Makefile1.cross, sys/msdos/Makefile2.cross, and
sys/msdos/msdos-cross-compile.sh as they are no longer required.
Remove occurrences of CROSSCOMPILE_HOST as the host-side of a
cross-compile can be determined from:
defined(CROSSCOMPILE) && !defined(CROSSCOMPILE_TARGET)
without the additional macro.
This commit is contained in:
247
Cross-compiling
247
Cross-compiling
@@ -1,4 +1,4 @@
|
|||||||
Cross-compiling NetHack 3.7 Last edit: May 31, 2020
|
Cross-compiling NetHack 3.7 Last edit: September 29, 2020
|
||||||
|
|
||||||
The NetHack 3.7 build process differs from the build process of previous
|
The NetHack 3.7 build process differs from the build process of previous
|
||||||
versions in some important ways that make it possible to use a cross-compiler
|
versions in some important ways that make it possible to use a cross-compiler
|
||||||
@@ -17,6 +17,7 @@ Part B Contents:
|
|||||||
B2. What needs to be built and executed on the HOST?
|
B2. What needs to be built and executed on the HOST?
|
||||||
B3. What needs to be built for the TARGET?
|
B3. What needs to be built for the TARGET?
|
||||||
B4. Case sample: msdos
|
B4. Case sample: msdos
|
||||||
|
B5. Case sample: amiga (started but incomplete)
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
Part A - Cross-compiling NetHack
|
Part A - Cross-compiling NetHack
|
||||||
@@ -45,7 +46,7 @@ may include, but not necessarily be limited to, any of the following:
|
|||||||
|
|
||||||
o Compilers: Some of the native compilers on historical platforms may only
|
o Compilers: Some of the native compilers on historical platforms may only
|
||||||
support the particular dialect of C that was popular when the platform and
|
support the particular dialect of C that was popular when the platform and
|
||||||
compiler were in their prime.
|
compiler were in their prime.
|
||||||
|
|
||||||
Another useful potential result of cross-compiling, is that it paves the way
|
Another useful potential result of cross-compiling, is that it paves the way
|
||||||
for carrying out test and production builds of NetHack for multiple target
|
for carrying out test and production builds of NetHack for multiple target
|
||||||
@@ -65,27 +66,27 @@ steps to be carried out:
|
|||||||
(a) additional build steps to follow, including some header
|
(a) additional build steps to follow, including some header
|
||||||
files: pm.h, onames.h, date.h.
|
files: pm.h, onames.h, date.h.
|
||||||
(b) creation of files, containing information required by,
|
(b) creation of files, containing information required by,
|
||||||
or about the game during its execution, that are stored in a
|
or about the game during its execution, that are stored in a
|
||||||
portable, platform-independent way, that need to be inserted
|
portable, platform-independent way, that need to be inserted
|
||||||
into the game package.
|
into the game package.
|
||||||
(c) creation of files containing information required by, or about
|
(c) creation of files containing information required by, or about
|
||||||
the game during its execution, that are stored in an architecture
|
the game during its execution, that are stored in an architecture
|
||||||
and/or platform and/or operating system dependent way, that need
|
and/or platform and/or operating system dependent way, that need
|
||||||
to be inserted into the game package (the quest text format is
|
to be inserted into the game package (the quest text format is
|
||||||
one example).
|
one example).
|
||||||
3. Compile and link the level compiler. This step needs to execute
|
3. Compile and link the level compiler. This step needs to execute
|
||||||
work-alike tools to lex and yacc, or needs to build pre-built lex and
|
work-alike tools to lex and yacc, or needs to build pre-built lex and
|
||||||
yacc output (.c, .h files) that are provided in the sys/share part of
|
yacc output (.c, .h files) that are provided in the sys/share part of
|
||||||
the NetHack source code tree.
|
the NetHack source code tree.
|
||||||
4. Execute the level compiler to read dat/*.des files and create
|
4. Execute the level compiler to read dat/*.des files and create
|
||||||
a set of binary output files that are architecture and/or operating
|
a set of binary output files that are architecture and/or operating
|
||||||
system dependent on the build platform, for use by the game during
|
system dependent on the build platform, for use by the game during
|
||||||
its execution.
|
its execution.
|
||||||
5. Compile and link the dungeon compiler. Like the level compiler, this
|
5. Compile and link the dungeon compiler. Like the level compiler, this
|
||||||
step needs to execute work-alike tools to lex and yacc, or needs to
|
step needs to execute work-alike tools to lex and yacc, or needs to
|
||||||
build pre-built lex and yacc output (.c, .h files) that are provided
|
build pre-built lex and yacc output (.c, .h files) that are provided
|
||||||
in the sys/share part of the NetHack source code tree.
|
in the sys/share part of the NetHack source code tree.
|
||||||
6. Execute the dungeon compiler to read dat/dungeon.def and create
|
6. Execute the dungeon compiler to read dat/dungeon.def and create
|
||||||
a set of binary output files that are architecture and/or operating
|
a set of binary output files that are architecture and/or operating
|
||||||
system dependent on the build platform, for use by the game during
|
system dependent on the build platform, for use by the game during
|
||||||
its execution.
|
its execution.
|
||||||
@@ -126,7 +127,7 @@ steps to be carried out:
|
|||||||
(a) additional build steps to follow, including some header
|
(a) additional build steps to follow, including some header
|
||||||
files: pm.h, onames.h, date.h.
|
files: pm.h, onames.h, date.h.
|
||||||
(b) creation of files, containing information required by,
|
(b) creation of files, containing information required by,
|
||||||
or about the game during its execution, that are stored in a
|
or about the game during its execution, that are stored in a
|
||||||
portable, platform-independent way, that need to be inserted
|
portable, platform-independent way, that need to be inserted
|
||||||
into the game package.
|
into the game package.
|
||||||
3. Compile and link several less critical utilities such as uudecode,
|
3. Compile and link several less critical utilities such as uudecode,
|
||||||
@@ -143,7 +144,7 @@ steps to be carried out:
|
|||||||
previous steps 2b, 3 and 4 above.
|
previous steps 2b, 3 and 4 above.
|
||||||
|
|
||||||
Step 4 is now the only impediment to cross-compiling NetHack, and is resolved
|
Step 4 is now the only impediment to cross-compiling NetHack, and is resolved
|
||||||
by executing step 4 using a cross-compiler that runs on the build (host)
|
by executing step 4 using a cross-compiler that runs on the build (host)
|
||||||
platform to produce a resulting binary for the target platform, instead of
|
platform to produce a resulting binary for the target platform, instead of
|
||||||
executing the native compiler.
|
executing the native compiler.
|
||||||
|
|
||||||
@@ -158,18 +159,15 @@ cross-compiling possible:
|
|||||||
o There is no creation of platform-dependent files, such as the quest
|
o There is no creation of platform-dependent files, such as the quest
|
||||||
text files, by makedefs during the build process. Instead, the quest
|
text files, by makedefs during the build process. Instead, the quest
|
||||||
text files have been converted to Lua and are inserted into the game
|
text files have been converted to Lua and are inserted into the game
|
||||||
package for processing by the embedded Lua <fixme: interpreter?>
|
package for processing by the embedded Lua during execution of NetHack.
|
||||||
during execution of NetHack.
|
|
||||||
|
|
||||||
o There is no build-time level compiler involved. Instead, the level
|
o There is no build-time level compiler involved. Instead, the level
|
||||||
descriptions have been converted to Lua and are inserted into the game
|
descriptions have been converted to Lua and are inserted into the game
|
||||||
package for processing by the embeded Lua <fixme: interpreter?>
|
package for processing by the embeded Lua during execution of NetHack.
|
||||||
during execution of NetHack.
|
|
||||||
|
|
||||||
o There is no build-time dungeon compiler involved. Instead, the dungeon
|
o There is no build-time dungeon compiler involved. Instead, the dungeon
|
||||||
description has been converted to Lua and is inserted into the game
|
description has been converted to Lua and is inserted into the game
|
||||||
package for processing by the embeded Lua <fixme: interpreter?>
|
package for processing by the embeded Lua during execution of NetHack.
|
||||||
during execution of NetHack.
|
|
||||||
|
|
||||||
o Some of the build and option information that was formerly produced
|
o Some of the build and option information that was formerly produced
|
||||||
during build time by makedefs, and contained information about the
|
during build time by makedefs, and contained information about the
|
||||||
@@ -182,7 +180,7 @@ cross-compiling possible:
|
|||||||
+------------------------------------------------------------+
|
+------------------------------------------------------------+
|
||||||
|
|
||||||
o If you have a favourite target platform (let's call it XX-Platform for
|
o If you have a favourite target platform (let's call it XX-Platform for
|
||||||
example purposes) that you'd like to see NetHack be able to run on, do
|
example purposes) that you'd like to see NetHack be able to run on, do
|
||||||
some research to find out if a cross-compiler exists that:
|
some research to find out if a cross-compiler exists that:
|
||||||
- produces output for XX-Platform.
|
- produces output for XX-Platform.
|
||||||
- executes on a platform that you use and love (Linux, Windows,
|
- executes on a platform that you use and love (Linux, Windows,
|
||||||
@@ -191,9 +189,9 @@ cross-compiling possible:
|
|||||||
|
|
||||||
o Then, make the community, devteam, and others aware that you're starting
|
o Then, make the community, devteam, and others aware that you're starting
|
||||||
a cross-compile of NetHack for XX-Platform. You might need to ask some
|
a cross-compile of NetHack for XX-Platform. You might need to ask some
|
||||||
"starting out" questions initially, and as you get deeper into it, you
|
"starting out" questions initially, and as you get deeper into it, you
|
||||||
might need to ask some tougher questions.
|
might need to ask some tougher questions.
|
||||||
|
|
||||||
o Perhaps consider forking from NetHack on GitHub, and do the
|
o Perhaps consider forking from NetHack on GitHub, and do the
|
||||||
cross-compiler work there in your fork. Strive to get it to a point where
|
cross-compiler work there in your fork. Strive to get it to a point where
|
||||||
it's ready to play-test on XX-Platform, or perhaps even use an emulator
|
it's ready to play-test on XX-Platform, or perhaps even use an emulator
|
||||||
@@ -205,9 +203,9 @@ cross-compiling possible:
|
|||||||
- It will make it possible and straightforward to merge upstream
|
- It will make it possible and straightforward to merge upstream
|
||||||
NetHack changes into your work for the XX-Platform cross-compile
|
NetHack changes into your work for the XX-Platform cross-compile
|
||||||
so that it stays current with the game as it evolves.
|
so that it stays current with the game as it evolves.
|
||||||
- You may get help from others in the form of suggestions, or
|
- You may get help from others in the form of suggestions, or
|
||||||
pull-requests, or offers to join the development. Chances are,
|
pull-requests, or offers to join the development. Chances are,
|
||||||
you aren't the only person out there that would like to
|
you aren't the only person out there that would like to
|
||||||
establish/resurrect/maintain NetHack on XX-Platform.
|
establish/resurrect/maintain NetHack on XX-Platform.
|
||||||
|
|
||||||
Have fun!
|
Have fun!
|
||||||
@@ -258,7 +256,7 @@ On the HOST, here are the mandatory things that have to be built.
|
|||||||
a) Using the HOST native compiler, build HOST native utility makedefs
|
a) Using the HOST native compiler, build HOST native utility makedefs
|
||||||
|
|
||||||
Compile and link the following with these compiler switches:
|
Compile and link the following with these compiler switches:
|
||||||
-DCROSSCOMPILE and -DCROSSCOMPILE_HOST
|
-DCROSSCOMPILE
|
||||||
from sources: util/makedefs.c, src/mdlib.c, src/monst.c, src/objects.c
|
from sources: util/makedefs.c, src/mdlib.c, src/monst.c, src/objects.c
|
||||||
|
|
||||||
b) Execute HOST native makedefs utility, util/makedefs, as follows:
|
b) Execute HOST native makedefs utility, util/makedefs, as follows:
|
||||||
@@ -307,7 +305,7 @@ On the HOST, here are the mandatory things that have to be built.
|
|||||||
util/uudecode
|
util/uudecode
|
||||||
|
|
||||||
from sources: sys/share/uudecode.c
|
from sources: sys/share/uudecode.c
|
||||||
purpose: convert some binary files, that are
|
purpose: convert some binary files, that are
|
||||||
distributed in the NetHack sources in
|
distributed in the NetHack sources in
|
||||||
uuencoded format, back into their
|
uuencoded format, back into their
|
||||||
original binary state
|
original binary state
|
||||||
@@ -452,67 +450,166 @@ Using the cross-compiler, build the following targets:
|
|||||||
Cross-compiler used: Andrew Wu's djgpp cross-compiler
|
Cross-compiler used: Andrew Wu's djgpp cross-compiler
|
||||||
Cross-compiler url: https://github.com/andrewwutw/build-djgpp
|
Cross-compiler url: https://github.com/andrewwutw/build-djgpp
|
||||||
Cross-compiler pre-built binary downloads:
|
Cross-compiler pre-built binary downloads:
|
||||||
https://github.com/andrewwutw/build-djgpp/releases/download/v2.9/
|
https://github.com/andrewwutw/build-djgpp/releases/download/v3.0/
|
||||||
Mac OS X pre-built binary: djgpp-osx-gcc550.tar.bz2 (tested)
|
Cross-compiler bits tested:
|
||||||
Linux pre-built binary : djgpp-linux64-gcc550.tar.bz2 (tested)
|
https://github.com/andrewwutw/build-djgpp
|
||||||
mingw pre-built binary : djgpp-mingw-gcc550-standalone.zip (untested)
|
and the pre-built binary for your platform from:
|
||||||
|
https://github.com/andrewwutw/build-djgpp/releases/download/v3.0/
|
||||||
|
and a DOS-extender (for including in msdos packaging) from
|
||||||
|
http://sandmann.dotster.com/cwsdpmi/csdpmi7b.zip
|
||||||
|
and pdcurses from:
|
||||||
|
https://github.com/wmcbrine/PDCurses.git
|
||||||
|
|
||||||
The msdos cross-compile for NetHack 3.7 uses two phases of compiles:
|
- A shell script to download that djgpp cross-compiler and associated
|
||||||
Phase1 is the host-side prerequisite stuff that needs to be done first.
|
pieces for either linux or macOS is available:
|
||||||
Phase2 is the cross-compile pieces using the djgpp cross-compiler hosted on
|
|
||||||
Linux, Mac OS X, or Windows mingw.
|
|
||||||
|
|
||||||
First, on the host platform, you need to set up for a native Unix NetHack
|
sh sys/msdos/fetch-cross-compiler.sh
|
||||||
build in the usual way. For example, on linux:
|
|
||||||
cd sys/unix
|
|
||||||
sh setup.sh hints/linux
|
|
||||||
cd ../..
|
|
||||||
make fetch-lua
|
|
||||||
|
|
||||||
Now, you could proceed to go ahead and issue
|
That script won't install anything, it just does file fetches and stores
|
||||||
make all
|
them in subfolders of lib. The linux.2020 and macOS.2020 hints files are
|
||||||
to build a native NetHack at that point if you wish, but it is not needed
|
configured to find the cross-compiler there if you add
|
||||||
for the msdos cross-compile.
|
CROSS_TO_MSDOS=1
|
||||||
|
on your make command line.
|
||||||
|
|
||||||
Instead, a test shell script has been put together that will next accomplish
|
Note: Both the fetch-cross-compiler.sh script and and the msdos
|
||||||
each of the following tasks when it is executed. The shell script can be
|
cross-compile and package procedures require unzip and zip to be available
|
||||||
invoked by:
|
on your host build system.
|
||||||
sh sys/msdos/msdos-cross-compile.sh
|
|
||||||
but before you do that, please read the paragraphs below.
|
|
||||||
|
|
||||||
The shell script is meant to accomplish the following things:
|
On your linux host:
|
||||||
|
|
||||||
Prep : the script downloads the djgpp cross-compiler for the host
|
cd sys/unix ; sh setup.sh hints/linux.2020 ; cd ../..
|
||||||
platform into lib/djgpp (it doesn't install anything on the
|
make fetch-lua
|
||||||
system, nor does it need to, it just downloads them into the
|
|
||||||
identified directories), it downloads a copy of the msdos
|
|
||||||
dos-extender into lib/djgpp/cwsdpmi for later packaging up with
|
|
||||||
the msdos game, and it downloads pdcurses into lib/pdcurses
|
|
||||||
for cross-compiling during the TARGET build.
|
|
||||||
|
|
||||||
Be certain to ensure the right products are at the url's
|
On your macOS host:
|
||||||
identified above *before* you execute the Case sample msdos
|
|
||||||
cross-compile script. The correct products were at those url's
|
|
||||||
at the time this was written in Dec 2019, but we don't assume
|
|
||||||
any responsibility for what is at those url's now or in the
|
|
||||||
future. You need to check before executing the script.
|
|
||||||
|
|
||||||
Phase1 : the script uses the Makefile sys/msdos/Makefile1.cross
|
cd sys/unix ; sh setup.sh hints/macOS.2020 ; cd ../..
|
||||||
to complete the host-side build steps using the native gcc
|
make fetch-lua
|
||||||
compiler for the host platform. During phase1 the host obj
|
|
||||||
files are put in subfolder src/host_o to keep them separated
|
|
||||||
and distinguishable from the target obj files that will be
|
|
||||||
built in phase2.
|
|
||||||
|
|
||||||
Phase2 : the script uses the Makefile sys/msdos/Makefile2.cross
|
The MSDOS cross-compile can then be carried out by specifying
|
||||||
to complete the target-side build steps using the
|
CROSS_TO_MSDOS=1 on the make command line:
|
||||||
cross-compiler that was obtained during the prep step of the
|
|
||||||
script described above. During phase2 the target obj files
|
|
||||||
are put in src/msdos_o to keep them separated and
|
|
||||||
distinguishable from the host obj files
|
|
||||||
|
|
||||||
Package: the script then packages up the results that reside in
|
make CROSS_TO_MSDOS=1 all
|
||||||
msdos-binary into a zip file which it places in lib called
|
make CROSS_TO_MSDOS=1 package
|
||||||
nh370dos.zip.
|
|
||||||
|
|
||||||
|
You can explicitly include tty and curses support if desired. The default
|
||||||
|
you'll end up with is a tty-only cross-compile build:
|
||||||
|
|
||||||
|
make WANT_WIN_TTY=1 WANT_WIN_CURSES=1 CROSS_TO_MSDOS=1 all
|
||||||
|
make WANT_WIN_TTY=1 WANT_WIN_CURSES=1 CROSS_TO_MSDOS=1 package
|
||||||
|
|
||||||
|
Result: The "make package" target will bundle all of the necessary
|
||||||
|
components to run NetHack on msdos into a folder:
|
||||||
|
targets/msdos/pkg
|
||||||
|
and then it zips the contents of that folder into:
|
||||||
|
targets/msdos/nh370dos.zip
|
||||||
|
|
||||||
|
Also note that building the msdos targets using the make command
|
||||||
|
above, does not preclude you from building local linux or macOS
|
||||||
|
targets as well. Just drop the CROSS_TO_MSDOS=1 from the make
|
||||||
|
command line. That's because the cross-compiler hints additions are
|
||||||
|
enclosed inside ifdef sections and won't interfere with the
|
||||||
|
non-cross-compile build in that case.
|
||||||
|
|
||||||
|
+-------------------------+
|
||||||
|
| B5. Case sample: amiga |
|
||||||
|
+-------------------------+
|
||||||
|
|
||||||
|
Disclaimer: This is a minimal recipe, just to help someone else get
|
||||||
|
started if they have a desire to get a full cross-compile of
|
||||||
|
NetHack going for the Amiga.
|
||||||
|
See CAVEATS below.
|
||||||
|
|
||||||
|
Cross-compiler used: bebbo's amiga-gcc
|
||||||
|
Cross-compiler url: https://github.com/bebbo/amiga-gcc
|
||||||
|
|
||||||
|
To our knowledge, a pre-built copy of the cross-compiler isn't available,
|
||||||
|
so you will likely have to obtain the cross-compiler sources via git and
|
||||||
|
build it on your system.
|
||||||
|
|
||||||
|
The build prerequisite packages for building the compiler on Ubuntu can be
|
||||||
|
easily obtained:
|
||||||
|
|
||||||
|
sudo apt install make wget git gcc g++ lhasa libgmp-dev \
|
||||||
|
libmpfr-dev libmpc-dev flex bison gettext texinfo ncurses-dev \
|
||||||
|
autoconf rsync
|
||||||
|
|
||||||
|
The build prerequisite packages for macOS via homebrew are documented but
|
||||||
|
not tested by us any of us to date.
|
||||||
|
|
||||||
|
brew install bash wget make lhasa gmp mpfr libmpc flex gettext \
|
||||||
|
texinfo gcc make autoconf
|
||||||
|
|
||||||
|
After installing the prerequite packages and the cross-compiler
|
||||||
|
it was a straightforward build:
|
||||||
|
|
||||||
|
git clone https://github.com/bebbo/amiga-gcc.git
|
||||||
|
cd amiga-gcc
|
||||||
|
make update
|
||||||
|
|
||||||
|
[Note that you may have to take ownership of the files in the bebbo
|
||||||
|
repo via chown before succesfully carrying out the next steps]
|
||||||
|
|
||||||
|
make clean
|
||||||
|
make clean-prefix
|
||||||
|
date; make all -j3 >&b.log; date
|
||||||
|
|
||||||
|
The compiler pieces are installed in /opt/amiga by default. If you prefer,
|
||||||
|
you can alter the prefix before you build if you want. The instructions
|
||||||
|
for doing so were spelled out at the time of this writing at:
|
||||||
|
|
||||||
|
https://github.com/bebbo/amiga-gcc
|
||||||
|
|
||||||
|
On your linux host:
|
||||||
|
|
||||||
|
cd sys/unix ; sh setup.sh hints/linux.2020 ; cd ../..
|
||||||
|
make fetch-lua
|
||||||
|
|
||||||
|
On your macOS host:
|
||||||
|
|
||||||
|
cd sys/unix ; sh setup.sh hints/macOS.2020 ; cd ../..
|
||||||
|
make fetch-lua
|
||||||
|
|
||||||
|
The Amiga cross-compile can then be carried out by specifying
|
||||||
|
CROSS_TO_AMIGA=1 on the make command line:
|
||||||
|
|
||||||
|
make CROSS_TO_AMIGA=1 all
|
||||||
|
make CROSS_TO_AMIGA=1 package
|
||||||
|
|
||||||
|
You can explicitly include tty and curses support if desired, otherwise
|
||||||
|
you'll end up with a tty-only cross-compile build. The SDL1 pdcurses
|
||||||
|
support has not been tested.
|
||||||
|
|
||||||
|
make WANT_WIN_TTY=1 WANT_WIN_CURSES=1 CROSS_TO_AMIGA=1 all
|
||||||
|
|
||||||
|
Result: The "make package" target will bundle the (hopefully) necessary
|
||||||
|
components to run NetHack on msdos into a folder:
|
||||||
|
targets/amiga/pkg
|
||||||
|
and then it zips the contents of that folder into:
|
||||||
|
targets/amiga/nh370ami.zip
|
||||||
|
|
||||||
|
Also note that building the amiga targets using the make command
|
||||||
|
above, does not preclude you from building local linux or macOS
|
||||||
|
targets as well. Just drop the CROSS_TO_AMIGA=1 from the make
|
||||||
|
command line.
|
||||||
|
|
||||||
|
The cross-compiler hints additions are enclosed inside ifdef sections
|
||||||
|
and won't interfere with the non-cross-compile build in that case.
|
||||||
|
|
||||||
|
CAVEATS: The original NetHack Amiga build steps included the source for
|
||||||
|
some utilities that were built and executed on the amiga:
|
||||||
|
txt2iff and xpm2iff
|
||||||
|
as part of the NetHack build procedure on amiga.
|
||||||
|
Those did not compile out-of-the-box on the linux host. They
|
||||||
|
will either have to be:
|
||||||
|
- ported to build and run on the linux or macOS cross-compile
|
||||||
|
host
|
||||||
|
or
|
||||||
|
|
||||||
|
- their functionality will have to be rolled into amiga NetHack
|
||||||
|
itself and executed on the target Amiga the first time the game
|
||||||
|
is run, perhaps.
|
||||||
|
|
||||||
|
If you make headway, or are successful getting a working copy of
|
||||||
|
NetHack going on the amiga, drop us a note at devteam@nethack.org.
|
||||||
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ struct cross_target_s cross_target = {
|
|||||||
|
|
||||||
#if defined(NETHACK_GIT_SHA)
|
#if defined(NETHACK_GIT_SHA)
|
||||||
const char *NetHack_git_sha
|
const char *NetHack_git_sha
|
||||||
#if !defined(CROSSCOMPILE) || (defined(CROSSCOMPILE) && defined(CROSSCOMPILE_HOST))
|
#if !defined(CROSSCOMPILE) || !defined(CROSSCOMPILE_TARGET)
|
||||||
= NETHACK_GIT_SHA
|
= NETHACK_GIT_SHA
|
||||||
#else
|
#else
|
||||||
#ifdef NETHACK_HOST_GIT_SHA
|
#ifdef NETHACK_HOST_GIT_SHA
|
||||||
@@ -41,7 +41,7 @@ const char *NetHack_git_sha
|
|||||||
|
|
||||||
#if defined(NETHACK_GIT_BRANCH)
|
#if defined(NETHACK_GIT_BRANCH)
|
||||||
const char *NetHack_git_branch
|
const char *NetHack_git_branch
|
||||||
#if !defined(CROSSCOMPILE) || (defined(CROSSCOMPILE) && defined(CROSSCOMPILE_HOST))
|
#if !defined(CROSSCOMPILE) || !defined(CROSSCOMPILE_TARGET)
|
||||||
= NETHACK_GIT_BRANCH
|
= NETHACK_GIT_BRANCH
|
||||||
#else
|
#else
|
||||||
#ifdef NETHACK_HOST_GIT_BRANCH
|
#ifdef NETHACK_HOST_GIT_BRANCH
|
||||||
@@ -429,7 +429,7 @@ void
|
|||||||
store_version(nhfp)
|
store_version(nhfp)
|
||||||
NHFILE *nhfp;
|
NHFILE *nhfp;
|
||||||
{
|
{
|
||||||
#if !defined(CROSSCOMPILE) || defined(CROSSCOMPILE_HOST)
|
#if !defined(CROSSCOMPILE) || !defined(CROSSCOMPILE_TARGET)
|
||||||
static const struct version_info version_data = {
|
static const struct version_info version_data = {
|
||||||
VERSION_NUMBER, VERSION_FEATURES,
|
VERSION_NUMBER, VERSION_FEATURES,
|
||||||
VERSION_SANITY1, VERSION_SANITY2, VERSION_SANITY3
|
VERSION_SANITY1, VERSION_SANITY2, VERSION_SANITY3
|
||||||
@@ -439,7 +439,7 @@ NHFILE *nhfp;
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(CROSSCOMPILE) && !defined(CROSSCOMPILE_HOST)
|
#if defined(CROSSCOMPILE) && defined(CROSSCOMPILE_TARGET)
|
||||||
version_data.incarnation = VERSION_NUMBER; /* actual version number */
|
version_data.incarnation = VERSION_NUMBER; /* actual version number */
|
||||||
version_data.feature_set = VERSION_FEATURES; /* bitmask of config settings */
|
version_data.feature_set = VERSION_FEATURES; /* bitmask of config settings */
|
||||||
version_data.entity_count = VERSION_SANITY1; /* # of monsters and objects */
|
version_data.entity_count = VERSION_SANITY1; /* # of monsters and objects */
|
||||||
|
|||||||
@@ -1,641 +0,0 @@
|
|||||||
# NetHack 3.7 Makefile1.cross
|
|
||||||
# Cross-compile msdos version of NetHack using a
|
|
||||||
# linux-hosted djgpp cross-compiler.
|
|
||||||
#
|
|
||||||
# Makefile1.cross (this file) is for the host-side obj files and
|
|
||||||
# utilities that will run on the host platform only.
|
|
||||||
#
|
|
||||||
# Makefile2.cross is for the target platform obj files
|
|
||||||
# and utilities.
|
|
||||||
#
|
|
||||||
# Makefile2 utilizes the djgpp cross-compiler from Andrew Wu:
|
|
||||||
# https://github.com/andrewwutw/build-djgpp
|
|
||||||
#
|
|
||||||
# Currently, in NetHack 3.7, it is now feasible to cross-compile
|
|
||||||
# the game in a 2-stage process. Makefile1.cross (this file) carries
|
|
||||||
# out the 1st stage.
|
|
||||||
#
|
|
||||||
# The GNU Make has a problem if you include a drive spec below.
|
|
||||||
GAMEDIR =../msdos-binary
|
|
||||||
|
|
||||||
#
|
|
||||||
#==============================================================================
|
|
||||||
# This marks the end of the BUILD DECISIONS section.
|
|
||||||
#==============================================================================
|
|
||||||
#
|
|
||||||
# Directories, gcc likes unix style directory specs
|
|
||||||
#
|
|
||||||
|
|
||||||
OBJ = o
|
|
||||||
HOBJ = host_o
|
|
||||||
DAT = ../dat
|
|
||||||
DOC = ../doc
|
|
||||||
INCL = ../include
|
|
||||||
LIB = ../lib
|
|
||||||
MSYS = ../sys/msdos
|
|
||||||
SRC = ../src
|
|
||||||
SSHR = ../sys/share
|
|
||||||
UTIL = ../util
|
|
||||||
WIN = ../win/tty
|
|
||||||
WCURSES = ../win/curses
|
|
||||||
WSHR = ../win/share
|
|
||||||
|
|
||||||
#
|
|
||||||
# Executables.
|
|
||||||
#
|
|
||||||
HOST_CC = gcc
|
|
||||||
HOST_LINK = gcc
|
|
||||||
MAKEBIN = make
|
|
||||||
|
|
||||||
#
|
|
||||||
# Special libraries and how to link them in.
|
|
||||||
#
|
|
||||||
LIBS = -lpc
|
|
||||||
LIBRARIES = $(LIBS)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Yacc/Lex off
|
|
||||||
#
|
|
||||||
YACC_LEX = N
|
|
||||||
|
|
||||||
#
|
|
||||||
# Uncomment the line below if you want to store all the level files,
|
|
||||||
# help files, etc. in a single library file.
|
|
||||||
#
|
|
||||||
USE_DLB = Y
|
|
||||||
|
|
||||||
#===============================================
|
|
||||||
#======= End of Modification Section ===========
|
|
||||||
#===============================================
|
|
||||||
################################################
|
|
||||||
# #
|
|
||||||
# Nothing below here should have to be changed.#
|
|
||||||
# #
|
|
||||||
################################################
|
|
||||||
|
|
||||||
# Changing this conditional block is not recommended
|
|
||||||
ifeq "$(USE_DLB)" "Y"
|
|
||||||
DLBFLG = -DDLB
|
|
||||||
else
|
|
||||||
DLBFLG =
|
|
||||||
endif
|
|
||||||
|
|
||||||
TERMLIB =
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
#================ MACROS ==================
|
|
||||||
#==========================================
|
|
||||||
# This section creates shorthand macros for many objects
|
|
||||||
# referenced later on in the Makefile.
|
|
||||||
#
|
|
||||||
# Have windows path styles available for use in commands
|
|
||||||
#
|
|
||||||
W_OBJ =$(subst /,\, $(OBJ))
|
|
||||||
W_INCL =$(subst /,\, $(INCL))
|
|
||||||
W_DAT =$(subst /,\, $(DAT))
|
|
||||||
W_DOC =$(subst /,\, $(DOC))
|
|
||||||
W_UTIL =$(subst /,\, $(UTIL))
|
|
||||||
W_SRC =$(subst /,\, $(SRC))
|
|
||||||
W_SSYS =$(subst /,\, $(SSYS))
|
|
||||||
W_MSWSYS =$(subst /,\, $(MSWSYS))
|
|
||||||
W_TTY =$(subst /,\, $(TTY))
|
|
||||||
W_MSWIN =$(subst /,\, $(MSWIN))
|
|
||||||
ifeq "$(ADD_CURSES)" "Y"
|
|
||||||
W_WCURSES =$(subst /,\, $(WCURSES))
|
|
||||||
endif
|
|
||||||
W_WSHR =$(subst /,\, $(WSHR))
|
|
||||||
W_GAMEDIR =$(subst /,\, $(GAMEDIR))
|
|
||||||
|
|
||||||
#
|
|
||||||
# Shorten up the location for some files
|
|
||||||
#
|
|
||||||
|
|
||||||
O = $(OBJ)/
|
|
||||||
HOST_O = $(HOBJ)/
|
|
||||||
U = $(UTIL)/
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Utility Objects.
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
MAKESRC = makedefs.c
|
|
||||||
|
|
||||||
MAKEDEFSOBJS = $(HOST_O)makedefs.o $(HOST_O)monst.o $(HOST_O)objects.o
|
|
||||||
|
|
||||||
LUA_QTEXT_FILE = "quest.lua"
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Tile related object files.
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
TILOBJ2 = $(HOST_O)tileset.o $(HOST_O)bmptiles.o $(HOST_O)giftiles.o
|
|
||||||
|
|
||||||
TEXTIO = $(HOST_O)tiletext.o $(HOST_O)tiletxt.o $(HOST_O)drawing.o $(HOST_O)monst.o \
|
|
||||||
$(HOST_O)objects.o
|
|
||||||
|
|
||||||
TEXTIO2 = $(HOST_O)tiletex2.o $(HOST_O)tiletxt2.o $(HOST_O)drawing.o $(HOST_O)monst.o \
|
|
||||||
$(HOST_O)objects.o
|
|
||||||
|
|
||||||
TILE_BMP = $(DAT)/NHTILES.BMP
|
|
||||||
|
|
||||||
TILEUTIL = $(TILE_BMP)
|
|
||||||
|
|
||||||
TILEFILES = $(WSHR)/monsters.txt $(WSHR)/objects.txt $(WSHR)/other.txt
|
|
||||||
|
|
||||||
TILEFILES2 = $(WSHR)/monthin.txt $(WSHR)/objthin.txt $(WSHR)/oththin.txt
|
|
||||||
|
|
||||||
GIFREADERS = $(HOST_O)gifread.o $(HOST_O)alloc.o $(HOST_O)panic.o
|
|
||||||
|
|
||||||
GIFREAD2 = $(HOST_O)gifread2.o $(HOST_O)alloc.o $(HOST_O)panic.o
|
|
||||||
|
|
||||||
PPMWRITERS = $(HOST_O)ppmwrite.o $(HOST_O)alloc.o $(HOST_O)panic.o
|
|
||||||
|
|
||||||
PPMWRIT2 = $(HOST_O)ppmwrit2.o $(HOST_O)alloc.o $(HOST_O)panic.o
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Object files.
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
DLBOBJ = $(HOST_O)dlb.o
|
|
||||||
|
|
||||||
ALLOBJ = $(MAKEDEFSOBJS) $(TILOBJ) $(TILOBJ2) $(TEXTIO) $(TEXTIO2)
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Header file macros
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
PATCHLEV_H = $(INCL)/patchlev.h
|
|
||||||
DGN_FILE_H = $(INCL)/align.h $(INCL)/dgn_file.h
|
|
||||||
DUNGEON_H = $(INCL)/align.h $(INCL)/dungeon.h
|
|
||||||
MONDATA_H = $(INCL)/align.h $(INCL)/mondata.h
|
|
||||||
MONST_H = $(INCL)/align.h $(INCL)/monst.h $(INCL)/mextra.h
|
|
||||||
PERMONST_H = $(INCL)/monattk.h $(INCL)/monflag.h $(INCL)/align.h \
|
|
||||||
$(INCL)/permonst.h
|
|
||||||
REGION_H = $(INCL)/region.h
|
|
||||||
RM_H = $(INCL)/align.h $(INCL)/rm.h
|
|
||||||
SKILLS_H = $(INCL)/skills.h
|
|
||||||
SP_LEV_H = $(INCL)/align.h $(INCL)/sp_lev.h
|
|
||||||
YOUPROP_H = $(PERMONST_H) $(MONDATA_H) $(INCL)/prop.h \
|
|
||||||
$(INCL)/pm.h $(INCL)/youprop.h
|
|
||||||
YOU_H = $(MONST_H) $(YOUPROP_H) $(INCL)/align.h \
|
|
||||||
$(INCL)/attrib.h $(INCL)/you.h
|
|
||||||
DISPLAY_H = $(MONDATA_H) $(INCL)/vision.h $(INCL)/display.h
|
|
||||||
PCCONF_H = $(INCL)/micro.h $(INCL)/system.h $(INCL)/pcconf.h \
|
|
||||||
$(MSYS)/pcvideo.h
|
|
||||||
DECL_H = $(YOU_H) $(INCL)/spell.h $(INCL)/color.h \
|
|
||||||
$(INCL)/obj.h $(INCL)/onames.h $(INCL)/pm.h \
|
|
||||||
$(INCL)/decl.h
|
|
||||||
GLOBAL_H = $(PCCONF_H) $(INCL)/coord.h $(INCL)/global.h
|
|
||||||
|
|
||||||
CONFIG_H = $(INCL)/config.h $(INCL)/config1.h $(INCL)/tradstdc.h \
|
|
||||||
$(INCL)/global.h $(INCL)/coord.h $(INCL)/vmsconf.h \
|
|
||||||
$(INCL)/system.h $(INCL)/nhlua.h $(INCL)/unixconf.h \
|
|
||||||
$(INCL)/micro.h $(INCL)/pcconf.h $(INCL)/ntconf.h
|
|
||||||
|
|
||||||
HACK_H = $(INCL)/hack.h $(CONFIG_H) $(INCL)/lint.h $(INCL)/align.h \
|
|
||||||
$(INCL)/dungeon.h $(INCL)/monsym.h $(INCL)/mkroom.h \
|
|
||||||
$(INCL)/objclass.h $(INCL)/youprop.h $(INCL)/prop.h \
|
|
||||||
$(INCL)/permonst.h $(INCL)/monattk.h \
|
|
||||||
$(INCL)/monflag.h $(INCL)/mondata.h $(INCL)/pm.h \
|
|
||||||
$(INCL)/wintype.h $(INCL)/context.h $(INCL)/rm.h \
|
|
||||||
$(INCL)/botl.h $(INCL)/rect.h \
|
|
||||||
$(INCL)/region.h $(INCL)/decl.h $(INCL)/quest.h \
|
|
||||||
$(INCL)/spell.h $(INCL)/color.h $(INCL)/obj.h \
|
|
||||||
$(INCL)/you.h $(INCL)/attrib.h $(INCL)/monst.h \
|
|
||||||
$(INCL)/mextra.h $(INCL)/skills.h $(INCL)/onames.h \
|
|
||||||
$(INCL)/timeout.h $(INCL)/trap.h $(INCL)/flag.h \
|
|
||||||
$(INCL)/vision.h $(INCL)/display.h $(INCL)/engrave.h \
|
|
||||||
$(INCL)/winprocs.h $(INCL)/sys.h $(INCL)/wintty.h \
|
|
||||||
$(INCL)/trampoli.h
|
|
||||||
|
|
||||||
DLB_H = $(INCL)/dlb.h
|
|
||||||
|
|
||||||
ifeq ($(SUPPRESS_GRAPHICS),Y)
|
|
||||||
TILE_H =
|
|
||||||
else
|
|
||||||
TILE_H = $(WSHR)/tile.h $(INCL)/tileset.h
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(USE_DLB),Y)
|
|
||||||
DLB = dlb
|
|
||||||
DLBOBJS = $(HOST_O)dlb_main.o $(HOST_O)dlb.o $(HOST_O)alloc.o $(HOST_O)panic.o
|
|
||||||
else
|
|
||||||
DLB =
|
|
||||||
DLBOBJS =
|
|
||||||
endif
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# More compiler setup macros
|
|
||||||
#==========================================
|
|
||||||
#
|
|
||||||
CURSESDEF=
|
|
||||||
CURSESLIB=
|
|
||||||
INCLDIR=-I../include -I../sys/msdos
|
|
||||||
# Debugging
|
|
||||||
#cflags = -pg -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS -DCROSSCOMPILE -CROSSCOMPILE_HOST
|
|
||||||
#LFLAGS = -pg
|
|
||||||
#
|
|
||||||
#cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DSUPPRESS_GRAPHICS -DCROSSCOMPILE -DCROSSCOMPILE_HOST
|
|
||||||
#LFLAGS =
|
|
||||||
#
|
|
||||||
# Debugging
|
|
||||||
#cflags = -g -c $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_HOST
|
|
||||||
#LFLAGS = -g
|
|
||||||
#
|
|
||||||
# Normal
|
|
||||||
cflags = -c -O $(INCLDIR) $(DLBFLG) $(CURSESDEF) -DUSE_TILES -DCROSSCOMPILE -DCROSSCOMPILE_HOST
|
|
||||||
LFLAGS =
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
#================ RULES ==================
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
.SUFFIXES: .o .til .uu .c .y .l
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Rules for host files in src
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
$(HOST_O)%.o : $(SRC)/%.c
|
|
||||||
$(HOST_CC) $(cflags) -o$@ $<
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Rules for host files in sys/msdos
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
$(HOST_O)%.o : $(MSYS)/%.c
|
|
||||||
$(HOST_CC) $(cflags) -I../sys/msdos -o$@ $<
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Rules for host files in util
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
$(HOST_O)%.o : $(SRC)/%.c
|
|
||||||
$(HOST_CC) $(cflags) -o$@ $<
|
|
||||||
|
|
||||||
$(HOST_O)%.o : $(UTIL)/%.c
|
|
||||||
$(HOST_CC) $(cflags) -o$@ $<
|
|
||||||
|
|
||||||
$(HOST_O)%.o : %.c
|
|
||||||
$(HOST_CC) $(cflags) -o$@ $<
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Rules for host files in win/share
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
$(HOST_O)%.o : $(WSHR)/%.c
|
|
||||||
$(HOST_CC) $(cflags) -I../win/share -o$@ $<
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Primary Targets.
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
# The default target.
|
|
||||||
|
|
||||||
all : prereq
|
|
||||||
|
|
||||||
prereq: $(HOST_O)prereq.tag
|
|
||||||
@echo Done.
|
|
||||||
|
|
||||||
default: prereq
|
|
||||||
|
|
||||||
util: $(HOST_O)utility.tag
|
|
||||||
|
|
||||||
$(HOST_O)utility.tag: $(INCL)/date.h $(INCL)/trap.h $(INCL)/onames.h \
|
|
||||||
$(INCL)/pm.h vis_tab.c $(TILEUTIL) $(SRC)/tile.c
|
|
||||||
echo host utilities made > $@
|
|
||||||
|
|
||||||
tileutil: $(U)gif2txt $(U)txt2ppm
|
|
||||||
@echo Optional tile development utilities are up to date.
|
|
||||||
|
|
||||||
$(HOST_O)prereq.tag: $(INCL)/nhlua.h hobj.tag $(U)makedefs \
|
|
||||||
$(HOST_O)utility.tag $(DAT)/nhdat
|
|
||||||
echo prereq done >$@
|
|
||||||
|
|
||||||
ifeq "$(LUA_VERSION)" "5.3.5"
|
|
||||||
LUAVER=5.3.5
|
|
||||||
else
|
|
||||||
LUAVER=5.4.0
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(INCL)/nhlua.h:
|
|
||||||
cd $(INCL); \
|
|
||||||
echo '/* nhlua.h - generated by Makefile1.cross */' > $@; \
|
|
||||||
echo '#include "../lib/lua-$(LUAVER)/src/lua.h"' >> $@; \
|
|
||||||
sed -e '/(lua_error)/!d' -e '/(lua_error)/s/;/ NORETURN;/1' < $(LIB)/lua-$(LUAVER)/src/lua.h >> $@; \
|
|
||||||
echo '#include "../lib/lua-$(LUAVER)/src/lualib.h"' >> $@; \
|
|
||||||
echo '#include "../lib/lua-$(LUAVER)/src/lauxlib.h"' >> $@; \
|
|
||||||
echo '/*nhlua.h*/' >> $@; \
|
|
||||||
cd $(SRC)
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Other host targets.
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
#note that dir below assumes bin/dir from djgpp distribution
|
|
||||||
#
|
|
||||||
$(DAT)/nhdat: $(U)dlb_main $(DAT)/data $(DAT)/rumors \
|
|
||||||
$(DAT)/oracles \
|
|
||||||
$(DAT)/bogusmon $(DAT)/engrave $(DAT)/epitaph $(DAT)/tribute
|
|
||||||
cd $(DAT); \
|
|
||||||
pwd; \
|
|
||||||
cp $(MSYS)/msdoshlp.txt .; \
|
|
||||||
ls -1 data oracles options rumors help hh >dlb.lst; \
|
|
||||||
ls -1 cmdhelp history opthelp wizhelp license >>dlb.lst; \
|
|
||||||
ls -1 bogusmon engrave epitaph tribute msdoshlp.txt >>dlb.lst; \
|
|
||||||
ls -1 *.lua >>dlb.lst; \
|
|
||||||
$(U)dlb_main cvIf dlb.lst nhdat; \
|
|
||||||
cd $(SRC)
|
|
||||||
|
|
||||||
$(U)dlb_main: $(DLBOBJS)
|
|
||||||
$(HOST_LINK) $(LFLAGS) -o$@ $(DLBOBJS)
|
|
||||||
|
|
||||||
$(HOST_O)dlb_main.o: $(U)dlb_main.c $(INCL)/config.h $(DLB_H)
|
|
||||||
$(HOST_CC) $(cflags) -o$@ $(U)dlb_main.c
|
|
||||||
|
|
||||||
|
|
||||||
$(INCL)/date.h : $(U)makedefs
|
|
||||||
-$(U)makedefs -v
|
|
||||||
|
|
||||||
$(INCL)/onames.h: $(U)makedefs
|
|
||||||
-$(U)makedefs -o
|
|
||||||
|
|
||||||
$(INCL)/pm.h: $(U)makedefs
|
|
||||||
-$(U)makedefs -p
|
|
||||||
|
|
||||||
#monstr.c: $(U)makedefs
|
|
||||||
# -$(U)makedefs -m
|
|
||||||
|
|
||||||
$(INCL)/vis_tab.h: $(U)makedefs
|
|
||||||
-$(U)makedefs -z
|
|
||||||
|
|
||||||
vis_tab.c: $(U)makedefs
|
|
||||||
-$(U)makedefs -z
|
|
||||||
|
|
||||||
# make data.base an 8.3 filename to prevent an make warning
|
|
||||||
DATABASE = $(DAT)/data.bas
|
|
||||||
|
|
||||||
$(DAT)/data: $(HOST_O)utility.tag $(DATABASE)
|
|
||||||
$(U)makedefs -d
|
|
||||||
|
|
||||||
$(DAT)/rumors: $(HOST_O)utility.tag $(DAT)/rumors.tru $(DAT)/rumors.fal
|
|
||||||
$(U)makedefs -r
|
|
||||||
|
|
||||||
$(DAT)/oracles: $(HOST_O)utility.tag $(DAT)/oracles.txt
|
|
||||||
$(U)makedefs -h
|
|
||||||
|
|
||||||
$(DAT)/bogusmon: $(HOST_O)utility.tag $(DAT)/bogusmon.txt
|
|
||||||
$(U)makedefs -s
|
|
||||||
|
|
||||||
$(DAT)/engrave: $(HOST_O)utility.tag $(DAT)/engrave.txt
|
|
||||||
$(U)makedefs -s
|
|
||||||
|
|
||||||
$(DAT)/epitaph: $(HOST_O)utility.tag $(DAT)/epitaph.txt
|
|
||||||
$(U)makedefs -s
|
|
||||||
|
|
||||||
#===============================================
|
|
||||||
# Create directory for holding host object files
|
|
||||||
#===============================================
|
|
||||||
|
|
||||||
hobj.tag:
|
|
||||||
mkdir -p ./$(HOBJ)
|
|
||||||
echo directory ready ./$(HOBJ)
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Makedefs Stuff
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
$(U)makedefs: $(MAKEDEFSOBJS)
|
|
||||||
$(HOST_LINK) $(LFLAGS) -o$@ $(MAKEDEFSOBJS)
|
|
||||||
|
|
||||||
$(HOST_O)makedefs.o: $(U)makedefs.c $(SRC)/mdlib.c $(CONFIG_H) $(INCL)/permonst.h \
|
|
||||||
$(INCL)/objclass.h $(INCL)/monsym.h \
|
|
||||||
$(INCL)/artilist.h $(INCL)/dungeon.h $(INCL)/obj.h \
|
|
||||||
$(INCL)/monst.h $(INCL)/you.h $(INCL)/flag.h \
|
|
||||||
$(INCL)/dlb.h $(INCL)/patchlevel.h
|
|
||||||
|
|
||||||
#=============================================
|
|
||||||
# Header file moves required for tile support
|
|
||||||
#=============================================
|
|
||||||
|
|
||||||
ifeq ($(SUPPRESS_GRAPHICS),Y)
|
|
||||||
|
|
||||||
else
|
|
||||||
#
|
|
||||||
# Tile Mapping
|
|
||||||
#
|
|
||||||
|
|
||||||
$(SRC)/tile.c: $(U)tilemap
|
|
||||||
@$(U)tilemap
|
|
||||||
@echo A new $@ has been created
|
|
||||||
|
|
||||||
$(U)tilemap: $(HOST_O)tilemap.o
|
|
||||||
$(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)tilemap.o
|
|
||||||
|
|
||||||
$(HOST_O)tilemap.o: $(WSHR)/tilemap.c $(HACK_H) $(TILE_H)
|
|
||||||
$(HOST_CC) $(cflags) -I$(WSHR) -I$(MSYS) -DSTATUES_LOOK_LIKE_MONSTERS -o$@ $(WSHR)/tilemap.c
|
|
||||||
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Tile Utilities
|
|
||||||
# Required for tile support
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
#$(DAT)/NetHack1.tib: $(TILEFILES) $(U)tile2bin
|
|
||||||
# @echo Creating binary tile files
|
|
||||||
# cd $(DAT)
|
|
||||||
# $(U)tile2bin
|
|
||||||
# cd $(SRC)
|
|
||||||
|
|
||||||
#$(DAT)/NetHacko.tib: $(HOST_O)thintile.tag $(TILEFILES2) $(U)til2bin2
|
|
||||||
# @echo Creating overview binary tile files
|
|
||||||
# cd $(DAT)
|
|
||||||
# $(U)til2bin2
|
|
||||||
# cd $(SRC)
|
|
||||||
|
|
||||||
$(DAT)/NHTILES.BMP: $(TILEFILES) $(U)tile2bmp
|
|
||||||
@echo Creating binary tile files which may take some time
|
|
||||||
@cd $(DAT)
|
|
||||||
@$(U)tile2bmp $@
|
|
||||||
@cd $(SRC)
|
|
||||||
|
|
||||||
$(U)tile2bmp: $(HOST_O)tile2bmp.o $(TEXTIO)
|
|
||||||
-rm -f temp.a
|
|
||||||
ar r temp.a $(TEXTIO)
|
|
||||||
$(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)tile2bmp.o temp.a
|
|
||||||
|
|
||||||
#$(U)tile2bin: $(HOST_O)tile2bin.o $(TEXTIO)
|
|
||||||
# -rm -f temp.a
|
|
||||||
# ar r temp.a $(TEXTIO)
|
|
||||||
# $(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)tile2bin.o temp.a
|
|
||||||
|
|
||||||
#$(U)til2bin2: $(HOST_O)til2bin2.o $(TEXTIO2)
|
|
||||||
# -rm -f temp.a
|
|
||||||
# ar r temp.a $(TEXTIO2)
|
|
||||||
# $(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)til2bin2.o temp.a
|
|
||||||
|
|
||||||
#$(U)thintile: $(HOST_O)thintile.o
|
|
||||||
# $(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)thintile.o
|
|
||||||
|
|
||||||
#$(HOST_O)thintile.o: $(HACK_H) $(WSHR)/tile.h $(WSHR)/thintile.c
|
|
||||||
# -rm -f temp.a
|
|
||||||
# ar r temp.a $(TEXTIO)
|
|
||||||
# $(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)tile2bmp.o temp.a
|
|
||||||
|
|
||||||
#$(HOST_O)thintile.o: $(HACK_H) $(WSHR)/tile.h $(WSHR)/thintile.c
|
|
||||||
# $(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILE -DOVERVIEW_FILE -o$@ $(WSHR)/thintile.c
|
|
||||||
|
|
||||||
#$(HOST_O)thintile.tag: $(U)thintile $(TILEFILES)
|
|
||||||
# $(U)thintile
|
|
||||||
# echo thintiles created >$@
|
|
||||||
|
|
||||||
$(HOST_O)tile2bmp.o: $(HACK_H) $(TILE_H) $(WSHR)/tile2bmp.c
|
|
||||||
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(WSHR)/tile2bmp.c
|
|
||||||
|
|
||||||
#$(HOST_O)tile2bin.o: $(HACK_H) $(TILE_H) $(MSYS)/pctiles.h $(MSYS)/pcvideo.h $(MSYS)/tile2bin.c
|
|
||||||
# $(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(MSYS)/tile2bin.c
|
|
||||||
|
|
||||||
#$(HOST_O)til2bin2.o: $(HACK_H) $(TILE_H) $(MSYS)/pctiles.h $(MSYS)/pcvideo.h $(MSYS)/tile2bin.c
|
|
||||||
# $(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILE_X=8 -DOVERVIEW_FILE -o$@ $(MSYS)/tile2bin.c
|
|
||||||
|
|
||||||
$(HOST_O)tiletext.o: $(CONFIG_H) $(TILE_H) $(WSHR)/tiletext.c
|
|
||||||
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -o$@ $(WSHR)/tiletext.c
|
|
||||||
|
|
||||||
$(HOST_O)tiletex2.o: $(CONFIG_H) $(TILE_H) $(WSHR)/tiletext.c
|
|
||||||
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILE_X=8 -o$@ $(WSHR)/tiletext.c
|
|
||||||
|
|
||||||
$(HOST_O)tiletxt.o: $(CONFIG_H) $(TILE_H) $(WSHR)/tilemap.c
|
|
||||||
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILETEXT -o$@ $(WSHR)/tilemap.c
|
|
||||||
|
|
||||||
$(HOST_O)tiletxt2.o: $(CONFIG_H) $(TILE_H) $(WSHR)/tilemap.c
|
|
||||||
$(HOST_CC) $(cflags) -I$(MSYS) -I$(WSHR) -DTILETEXT -DTILE_X=8 -o$@ $(WSHR)/tilemap.c
|
|
||||||
#
|
|
||||||
# Optional GIF Utilities (for development)
|
|
||||||
#
|
|
||||||
|
|
||||||
$(U)gif2txt: $(GIFREADERS) $(TEXTIO)
|
|
||||||
$(HOST_LINK) $(LFLAGS) -o$@ $(GIFREADERS) $(TEXTIO)
|
|
||||||
|
|
||||||
$(U)gif2txt2: $(GIFREAD2) $(TEXTIO2)
|
|
||||||
$(HOST_LINK) $(LFLAGS) -o$@ $(GIFREAD2) $(TEXTIO2)
|
|
||||||
|
|
||||||
$(U)txt2ppm: $(PPMWRITERS) $(TEXTIO)
|
|
||||||
$(HOST_LINK) $(LFLAGS) -o$@ $(PPMWRITERS) $(TEXTIO)
|
|
||||||
|
|
||||||
$(U)txt2ppm2: $(PPMWRIT2) $(TEXTIO2)
|
|
||||||
$(HOST_LINK) $(LFLAGS) -o$@ $(PPMWRIT2) $(TEXTIO2)
|
|
||||||
|
|
||||||
$(HOST_O)gifread.o: $(CONFIG_H) $(WSHR)/tile.h $(WSHR)/gifread.c
|
|
||||||
|
|
||||||
$(HOST_O)gifread2.o: $(CONFIG_H) $(WSHR)/tile.h $(WSHR)/gifread.c
|
|
||||||
$(HOST_CC) $(cflags) -DTILE_X=8 -o$@ $(WSHR)/gifread.c
|
|
||||||
|
|
||||||
ppmwrite.c: $(WSHR)/ppmwrite.c
|
|
||||||
cp $(WSHR)/ppmwrite.c .
|
|
||||||
|
|
||||||
$(HOST_O)ppmwrite.o: $(CONFIG_H) $(WSHR)/tile.h
|
|
||||||
|
|
||||||
$(HOST_O)ppmwrit2.o: $(CONFIG_H) $(WSHR)/tile.h ppmwrite.c
|
|
||||||
$(HOST_CC) $(cflags) -DTILE_X=8 -o$@ ppmwrite.c
|
|
||||||
|
|
||||||
#
|
|
||||||
# Optional tile viewer (development sources only)
|
|
||||||
#
|
|
||||||
|
|
||||||
$(U)viewtib: $(HOST_O)viewtib.o
|
|
||||||
$(HOST_LINK) $(LFLAGS) -o$@ $(HOST_O)viewtib.o $(LIBRARIES)
|
|
||||||
|
|
||||||
$(HOST_O)viewtib.o: $(MSYS)/viewtib.c
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Other host Util Dependencies.
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
$(HOST_O)monst.o: $(CONFIG_H) $(PERMONST_H) $(INCL)/monsym.h \
|
|
||||||
$(INCL)/color.h monst.c
|
|
||||||
$(HOST_CC) $(cflags) -o$@ monst.c
|
|
||||||
|
|
||||||
$(HOST_O)objects.o: $(CONFIG_H) $(INCL)/obj.h $(INCL)/objclass.h \
|
|
||||||
$(INCL)/prop.h $(INCL)/color.h objects.c
|
|
||||||
$(HOST_CC) $(cflags) -o$@ objects.c
|
|
||||||
|
|
||||||
$(HOST_O)panic.o: $(CONFIG_H) $(U)panic.c
|
|
||||||
$(HOST_CC) $(cflags) -o$@ $(U)panic.c
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Housekeeping for host side.
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm $(HOBJ)/*.o
|
|
||||||
-rm ./msdos_o/*.o
|
|
||||||
if [ -f $(HOST_O)prereq.tag ]; then rm $(HOST_O)prereq.tag; fi;
|
|
||||||
if [ -f hobj.tag ]; then rm hobj.tag; fi;
|
|
||||||
if [ -f $(HOST_O)utility.tag ]; then rm $(HOST_O)utility.tag; fi;
|
|
||||||
if [ -f temp.a ]; then rm temp.a; fi;
|
|
||||||
|
|
||||||
spotless: clean
|
|
||||||
|
|
||||||
if [ -f $(INCL)/pm.h ]; then rm $(INCL)/pm.h; fi;
|
|
||||||
## if [ -f $(U)dgn_flex.c ]; then rm $(U)dgn_flex.c; fi;
|
|
||||||
## if [ -f $(U)dgn_lex.c ]; then rm $(U)dgn_lex.c; fi;
|
|
||||||
# if [ -f $(U)makedefs ]; then rm $(U)makedefs; fi;
|
|
||||||
## if [ -f $(U)dgn_comp ]; then rm $(U)dgn_comp; fi;
|
|
||||||
# if [ -f $(U)recover.exe ]; then rm $(U)recover.exe; fi;
|
|
||||||
# if [ -f $(U)tilemap ]; then rm $(U)tilemap; fi;
|
|
||||||
# if [ -f $(U)tile2bmp ]; then rm $(U)tile2bmp; fi;
|
|
||||||
## if [ -f $(U)tile2bin ]; then rm $(U)tile2bin; fi;
|
|
||||||
## if [ -f $(U)til2bin2 ]; then rm $(U)til2bin2; fi;
|
|
||||||
## if [ -f $(U)thintile ]; then rm $(U)thintile; fi;
|
|
||||||
# if [ -f $(U)dlb_main ]; then rm $(U)dlb_main; fi;
|
|
||||||
# if [ -f $(INCL)/vis_tab.h ]; then rm $(INCL)/vis_tab.h; fi;
|
|
||||||
# if [ -f $(INCL)/onames.h ]; then rm $(INCL)/onames.h; fi;
|
|
||||||
# if [ -f $(INCL)/pm.h ]; then rm $(INCL)/pm.h; fi;
|
|
||||||
# if [ -f $(INCL)/date.h ]; then rm $(INCL)/date.h; fi;
|
|
||||||
## if [ -f $(INCL)/dgn_comp.h ]; then rm $(INCL)/dgn_comp.h; fi;
|
|
||||||
## if [ -f $(INCL)/lev_comp.h ]; then rm $(INCL)/lev_comp.h; fi;
|
|
||||||
# if [ -f $(SRC)/vis_tab.c ]; then rm $(SRC)/vis_tab.c; fi;
|
|
||||||
# if [ -f $(SRC)/tile.c ]; then rm $(SRC)/tile.c; fi;
|
|
||||||
# if [ -f $(DAT)/options ]; then rm $(DAT)/options; fi;
|
|
||||||
# if [ -f $(DAT)/data ]; then rm $(DAT)/data; fi;
|
|
||||||
# if [ -f $(DAT)/rumors ]; then rm $(DAT)/rumors; fi;
|
|
||||||
## if [ -f $(DAT)/dungeon.pdf ]; then rm $(DAT)/dungeon.pdf; fi;
|
|
||||||
## if [ -f $(DAT)/dungeon ]; then rm $(DAT)/dungeon; fi;
|
|
||||||
# if [ -f $(DAT)/oracles ]; then rm $(DAT)/oracles; fi;
|
|
||||||
## if [ -f $(DAT)/quest.dat ]; then rm $(DAT)/quest.dat; fi;
|
|
||||||
# if [ -f $(DAT)/bogusmon ]; then rm $(DAT)/bogusmon; fi;
|
|
||||||
# if [ -f $(DAT)/engrave ]; then rm $(DAT)/engrave; fi;
|
|
||||||
# if [ -f $(DAT)/epitaph ]; then rm $(DAT)/epitaph; fi;
|
|
||||||
# if [ -f $(DAT)/dlb.lst ]; then rm $(DAT)/dlb.lst; fi;
|
|
||||||
# if [ -f $(DAT)/nhdat ]; then rm $(DAT)/nhdat; fi;
|
|
||||||
# if [ -f $(DAT)/*.lev ]; then rm $(DAT)/*.lev; fi;
|
|
||||||
# if [ -f $(TILE_BMP) ]; then rm $(TILE_BMP); fi;
|
|
||||||
# if [ -f $(WSHR)/monthin.txt ]; then rm $(WSHR)/monthin.txt; fi;
|
|
||||||
# if [ -f $(WSHR)/objthin.txt ]; then rm $(WSHR)/objthin.txt; fi;
|
|
||||||
# if [ -f $(WSHR)/oththin.txt ]; then rm $(WSHR)/oththin.txt; fi;
|
|
||||||
|
|
||||||
#==========================================
|
|
||||||
# Host Utility Dependencies
|
|
||||||
#==========================================
|
|
||||||
|
|
||||||
# src dependencies
|
|
||||||
|
|
||||||
$(HOST_O)drawing.o: $(CONFIG_H) $(INCL)/color.h $(INCL)/rm.h \
|
|
||||||
$(INCL)/objclass.h $(INCL)/monsym.h
|
|
||||||
$(HOST_O)vis_tab.o: vis_tab.c $(CONFIG_H) $(INCL)/vis_tab.h
|
|
||||||
$(HOST_O)alloc.o: alloc.c $(CONFIG_H)
|
|
||||||
$(HOST_O)dlb.o: dlb.c $(CONFIG_H) $(INCL)/dlb.h
|
|
||||||
$(HOST_CC) $(cflags) -I../sys/msdos -o$@ dlb.c
|
|
||||||
$(HOST_O)monst.o: monst.c $(CONFIG_H) $(INCL)/permonst.h $(INCL)/align.h \
|
|
||||||
$(INCL)/monattk.h $(INCL)/monflag.h $(INCL)/monsym.h \
|
|
||||||
$(INCL)/color.h
|
|
||||||
$(HOST_O)objects.o: objects.c $(CONFIG_H) $(INCL)/obj.h $(INCL)/objclass.h \
|
|
||||||
$(INCL)/prop.h $(INCL)/skills.h $(INCL)/color.h
|
|
||||||
$(HOST_O)tileset.o: $(WSHR)/tileset.c $(HACK_H)
|
|
||||||
$(HOST_O)bmptiles.o: $(WSHR)/bmptiles.c $(INCL)/config.h $(INCL)/tileset.h $(INCL)/integer.h
|
|
||||||
$(HOST_O)giftiles.o: $(WSHR)/giftiles.c $(INCL)/config.h $(INCL)/tileset.h $(INCL)/integer.h
|
|
||||||
|
|
||||||
# end of file
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,129 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#set -x
|
|
||||||
|
|
||||||
if [ -z "$TRAVIS_BUILD_DIR" ]; then
|
|
||||||
export DJGPP_TOP=$(pwd)/lib/djgpp
|
|
||||||
else
|
|
||||||
export DJGPP_TOP="$TRAVIS_BUILD_DIR/lib/djgpp"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$GCCVER" ]; then
|
|
||||||
export GCCVER=gcc1010
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$LUA_VERSION" ]; then
|
|
||||||
export LUA_VERSION=5.4.0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d "$(pwd)/lib" ]; then
|
|
||||||
echo "Set up for Unix build and 'make fetch-lua' first."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
#DJGPP_URL="https://github.com/andrewwutw/build-djgpp/releases/download/v2.9/"
|
|
||||||
DJGPP_URL="https://github.com/andrewwutw/build-djgpp/releases/download/v3.0/"
|
|
||||||
if [ "$(uname)" = "Darwin" ]; then
|
|
||||||
#Mac
|
|
||||||
DJGPP_FILE="djgpp-osx-$GCCVER.tar.bz2"
|
|
||||||
if [ -z "HINTS" ]; then
|
|
||||||
export HINTS=macOS.2020
|
|
||||||
fi
|
|
||||||
elif [ "$(expr substr $(uname -s) 1 5)" = "Linux" ]; then
|
|
||||||
#Linux
|
|
||||||
DJGPP_FILE="djgpp-linux64-$GCCVER.tar.bz2"
|
|
||||||
if [ -z "$HINTS" ]; then
|
|
||||||
export HINTS=linux.2020
|
|
||||||
fi
|
|
||||||
elif [ "$(expr substr $(uname -s) 1 10)" = "MINGW32_NT" ]; then
|
|
||||||
#mingw
|
|
||||||
DJGPP_FILE="djgpp-mingw-$GCCVER-standalone.zip"
|
|
||||||
else
|
|
||||||
echo "No DJGPP release for you, sorry."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
DJGPP_URL="$DJGPP_URL$DJGPP_FILE"
|
|
||||||
|
|
||||||
# export
|
|
||||||
|
|
||||||
if [ ! -d lib ]; then
|
|
||||||
mkdir -p lib
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd lib
|
|
||||||
if [ ! -f "$DJGPP_FILE" ]; then
|
|
||||||
if [ "$(uname)" = "Darwin" ]; then
|
|
||||||
#Mac
|
|
||||||
curl -L $DJGPP_URL -o $DJGPP_FILE
|
|
||||||
else
|
|
||||||
wget --no-hsts "$DJGPP_URL"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d djgpp/i586-pc-msdosdjgpp ]; then
|
|
||||||
tar xjf "$DJGPP_FILE"
|
|
||||||
rm -f $DJGPP_FILE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# DOS-extender for use with djgpp
|
|
||||||
if [ ! -d djgpp/cwsdpmi ]; then
|
|
||||||
if [ "$(uname)" = "Darwin" ]; then
|
|
||||||
#Mac
|
|
||||||
curl http://sandmann.dotster.com/cwsdpmi/csdpmi7b.zip -o csdpmi7b.zip
|
|
||||||
else
|
|
||||||
wget --no-hsts http://sandmann.dotster.com/cwsdpmi/csdpmi7b.zip
|
|
||||||
fi
|
|
||||||
cd djgpp
|
|
||||||
mkdir -p cwsdpmi
|
|
||||||
cd cwsdpmi
|
|
||||||
unzip ../../csdpmi7b.zip
|
|
||||||
cd ../../
|
|
||||||
rm csdpmi7b.zip
|
|
||||||
fi
|
|
||||||
|
|
||||||
# PDCurses
|
|
||||||
if [ ! -d "pdcurses" ]; then
|
|
||||||
echo "Getting ../pdcurses from https://github.com/wmcbrine/PDCurses.git" ; \
|
|
||||||
git clone --depth 1 https://github.com/wmcbrine/PDCurses.git pdcurses
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd ../
|
|
||||||
|
|
||||||
# Don't fail the build if lua fetch failed because we cannot do anything about it
|
|
||||||
# but don't bother proceeding forward either
|
|
||||||
if [ ! -d "lib/lua-$LUA_VERSION/src" ]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
#echo after dos extender
|
|
||||||
|
|
||||||
cd src
|
|
||||||
|
|
||||||
mkdir -p ../msdos-binary
|
|
||||||
cp ../dat/data.base ../dat/data.bas
|
|
||||||
cp ../include/patchlevel.h ../include/patchlev.h
|
|
||||||
cp ../doc/Guidebook.txt ../doc/guidebk.txt
|
|
||||||
cp ../sys/share/posixregex.c ../sys/share/posixreg.c
|
|
||||||
#cp ../sys/msdos/Makefile1.cross ../src/Makefile1
|
|
||||||
#cp ../sys/msdos/Makefile2.cross ../src/Makefile2
|
|
||||||
make -f ../sys/msdos/Makefile1.cross
|
|
||||||
#cat ../include/date.h
|
|
||||||
export GCC_EXEC_PREFIX=$DJGPP_TOP/lib/gcc/
|
|
||||||
# export
|
|
||||||
|
|
||||||
#pwd
|
|
||||||
|
|
||||||
make -f ../sys/msdos/Makefile2.cross
|
|
||||||
unset GCC_EXEC_PREFIX
|
|
||||||
#pwd
|
|
||||||
|
|
||||||
if [ -f ../lib/djgpp/cwsdpmi/bin/CWSDPMI.EXE ]; then
|
|
||||||
cp ../lib/djgpp/cwsdpmi/bin/CWSDPMI.EXE ../msdos-binary/CWSDPMI.EXE;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ls -l ../msdos-binary
|
|
||||||
cd ../msdos-binary
|
|
||||||
zip -9 ../lib/NH370DOS.ZIP *
|
|
||||||
cd ../
|
|
||||||
ls -l lib/NH370DOS.ZIP
|
|
||||||
|
|
||||||
@@ -127,7 +127,7 @@ ifdef CROSS_TO_MSDOS
|
|||||||
# Source from http://www.lua.org/ftp/lua-5.4.0.tar.gz
|
# Source from http://www.lua.org/ftp/lua-5.4.0.tar.gz
|
||||||
#=================================================================
|
#=================================================================
|
||||||
|
|
||||||
CFLAGS += -DCROSSCOMPILE -DCROSSCOMPILE_HOST
|
CFLAGS += -DCROSSCOMPILE
|
||||||
|
|
||||||
#
|
#
|
||||||
# Override the build tools and some obj files to
|
# Override the build tools and some obj files to
|
||||||
@@ -195,7 +195,7 @@ ifdef CROSS_TO_AMIGA
|
|||||||
# Amiga m68k from https://github.com/bebbo/amiga-gcc
|
# Amiga m68k from https://github.com/bebbo/amiga-gcc
|
||||||
#=================================================================
|
#=================================================================
|
||||||
|
|
||||||
CFLAGS += -DCROSSCOMPILE -DCROSSCOMPILE_HOST
|
CFLAGS += -DCROSSCOMPILE
|
||||||
|
|
||||||
#
|
#
|
||||||
# Override the build tools and some obj files to
|
# Override the build tools and some obj files to
|
||||||
|
|||||||
@@ -253,12 +253,10 @@ U = $(UTIL)^\
|
|||||||
!IFDEF TEST_CROSSCOMPILE
|
!IFDEF TEST_CROSSCOMPILE
|
||||||
HOST=_host
|
HOST=_host
|
||||||
CROSSCOMPILE_TARGET= -DCROSSCOMPILE_TARGET
|
CROSSCOMPILE_TARGET= -DCROSSCOMPILE_TARGET
|
||||||
CROSSCOMPILE_HOST= -DCROSSCOMPILE_HOST
|
|
||||||
CROSSCOMPILE= -DCROSSCOMPILE
|
CROSSCOMPILE= -DCROSSCOMPILE
|
||||||
!ELSE
|
!ELSE
|
||||||
HOST=
|
HOST=
|
||||||
CROSSCOMPILE_TARGET=
|
CROSSCOMPILE_TARGET=
|
||||||
CROSSCOMPILE_HOST=
|
|
||||||
CROSSCOMPILE=
|
CROSSCOMPILE=
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
@@ -1064,7 +1062,7 @@ $(U)nhsizes3.exe: $(O)nhsizes3.o
|
|||||||
$(link) $(lflagsBuild) -out:$@ $(O)nhsizes.o $(O)panic$(HOST).o $(O)alloc$(HOST).o
|
$(link) $(lflagsBuild) -out:$@ $(O)nhsizes.o $(O)panic$(HOST).o $(O)alloc$(HOST).o
|
||||||
|
|
||||||
$(O)nhsizes3.o: $(CONFIG_H) nhsizes3.c
|
$(O)nhsizes3.o: $(CONFIG_H) nhsizes3.c
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ nhsizes3.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ nhsizes3.c
|
||||||
|
|
||||||
$(U)makedefs.exe: $(MAKEDEFSOBJS)
|
$(U)makedefs.exe: $(MAKEDEFSOBJS)
|
||||||
@echo Linking $(@:\=/)
|
@echo Linking $(@:\=/)
|
||||||
@@ -1077,8 +1075,8 @@ $(O)makedefs.o: $(U)makedefs.c $(SRC)\mdlib.c $(CONFIG_H) $(INCL)\permonst.h \
|
|||||||
$(INCL)\dlb.h
|
$(INCL)\dlb.h
|
||||||
@if not exist $(OBJ)\*.* echo creating directory $(OBJ:\=/)
|
@if not exist $(OBJ)\*.* echo creating directory $(OBJ:\=/)
|
||||||
@if not exist $(OBJ)\*.* mkdir $(OBJ)
|
@if not exist $(OBJ)\*.* mkdir $(OBJ)
|
||||||
@$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ $(U)makedefs.c
|
@$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(U)makedefs.c
|
||||||
# @$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /EP -Fo$@ $(U)makedefs.c >makedefs.c.preprocessed
|
# @$(cc) -DENUM_PM $(cflagsBuild) $(CROSSCOMPILE) /EP -Fo$@ $(U)makedefs.c >makedefs.c.preprocessed
|
||||||
|
|
||||||
#
|
#
|
||||||
# date.h should be remade every time any of the source or include
|
# date.h should be remade every time any of the source or include
|
||||||
@@ -1109,7 +1107,7 @@ $(U)uudecode.exe: $(O)uudecode.o
|
|||||||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)uudecode.o
|
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)uudecode.o
|
||||||
|
|
||||||
$(O)uudecode.o: $(SSYS)\uudecode.c
|
$(O)uudecode.o: $(SSYS)\uudecode.c
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /D_CRT_SECURE_NO_DEPRECATE -Fo$@ $(SSYS)\uudecode.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /D_CRT_SECURE_NO_DEPRECATE -Fo$@ $(SSYS)\uudecode.c
|
||||||
|
|
||||||
$(MSWSYS)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu
|
$(MSWSYS)\NetHack.ico : $(U)uudecode.exe $(MSWSYS)\nhico.uu
|
||||||
chdir $(MSWSYS)
|
chdir $(MSWSYS)
|
||||||
@@ -1208,7 +1206,7 @@ $(U)dlb.exe: $(DLBOBJ_HOST) $(O)dlb$(HOST).o
|
|||||||
|
|
||||||
!IFDEF TEST_CROSSCOMPILE
|
!IFDEF TEST_CROSSCOMPILE
|
||||||
$(O)dlb$(HOST).o: $(O)dlb_main$(HOST).o $(O)alloc$(HOST).o $(O)panic$(HOST).o $(INCL)\dlb.h
|
$(O)dlb$(HOST).o: $(O)dlb_main$(HOST).o $(O)alloc$(HOST).o $(O)panic$(HOST).o $(INCL)\dlb.h
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /Fo$@ $(SRC)\dlb.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /Fo$@ $(SRC)\dlb.c
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
$(O)dlb.o: $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
|
$(O)dlb.o: $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
|
||||||
@@ -1216,11 +1214,11 @@ $(O)dlb.o: $(O)dlb_main.o $(O)alloc.o $(O)panic.o $(INCL)\dlb.h
|
|||||||
|
|
||||||
!IFDEF TEST_CROSSCOMPILE
|
!IFDEF TEST_CROSSCOMPILE
|
||||||
$(O)dlb_main$(HOST).o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
|
$(O)dlb_main$(HOST).o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /Fo$@ $(UTIL)\dlb_main.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /Fo$@ $(UTIL)\dlb_main.c
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
$(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
|
$(O)dlb_main.o: $(UTIL)\dlb_main.c $(INCL)\config.h $(INCL)\dlb.h
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_TARGET) /Fo$@ $(UTIL)\dlb_main.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /Fo$@ $(UTIL)\dlb_main.c
|
||||||
|
|
||||||
$(DAT)\porthelp: $(MSWSYS)\porthelp
|
$(DAT)\porthelp: $(MSWSYS)\porthelp
|
||||||
@copy $(MSWSYS)\porthelp $@ >nul
|
@copy $(MSWSYS)\porthelp $@ >nul
|
||||||
@@ -1277,28 +1275,28 @@ $(U)tilemap.exe: $(O)tilemap.o
|
|||||||
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)tilemap.o
|
@$(link) $(lflagsBuild) /PDB:"$(O)$(@B).PDB" /MAP:"$(O)$(@B).MAP" -out:$@ $(O)tilemap.o
|
||||||
|
|
||||||
$(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
|
$(O)tilemap.o: $(WSHR)\tilemap.c $(HACK_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ $(WSHR)\tilemap.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(WSHR)\tilemap.c
|
||||||
|
|
||||||
$(O)tiletx32.o: $(WSHR)\tilemap.c $(HACK_H)
|
$(O)tiletx32.o: $(WSHR)\tilemap.c $(HACK_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /DTILETEXT /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tilemap.c
|
||||||
|
|
||||||
$(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
|
$(O)tiletxt.o: $(WSHR)\tilemap.c $(HACK_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) /DTILETEXT -Fo$@ $(WSHR)\tilemap.c
|
||||||
|
|
||||||
$(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
|
$(O)gifread.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) -Fo$@ $(WSHR)\gifread.c
|
||||||
|
|
||||||
$(O)gifrd32.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
|
$(O)gifrd32.o: $(WSHR)\gifread.c $(CONFIG_H) $(TILE_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\gifread.c
|
||||||
|
|
||||||
$(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H)
|
$(O)ppmwrite.o: $(WSHR)\ppmwrite.c $(CONFIG_H) $(TILE_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) -Fo$@ $(WSHR)\ppmwrite.c
|
||||||
|
|
||||||
$(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
|
$(O)tiletext.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) -Fo$@ $(WSHR)\tiletext.c
|
||||||
|
|
||||||
$(O)tilete32.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
|
$(O)tilete32.o: $(WSHR)\tiletext.c $(CONFIG_H) $(TILE_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DTILE_X=32 /DTILE_Y=32 -Fo$@ $(WSHR)\tiletext.c
|
||||||
|
|
||||||
#==========================================
|
#==========================================
|
||||||
# Optional Tile Utilities
|
# Optional Tile Utilities
|
||||||
@@ -1357,10 +1355,10 @@ $(U)til2bm32.exe: $(O)til2bm32.o $(TEXT_IO32)
|
|||||||
<<
|
<<
|
||||||
|
|
||||||
$(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
|
$(O)tile2bmp.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DPACKED_FILE /Fo$@ $(WSHR)\tile2bmp.c
|
||||||
|
|
||||||
$(O)til2bm32.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
|
$(O)til2bm32.o: $(WSHR)\tile2bmp.c $(HACK_H) $(TILE_H) $(MSWSYS)\win32api.h
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DPACKED_FILE /DTILE_X=32 /DTILE_Y=32 /Fo$@ $(WSHR)\tile2bmp.c
|
||||||
|
|
||||||
$(U)tile2x11.exe: $(O)tile2x11.o $(O)tiletext.o $(O)tiletxt.o $(O)alloc.o \
|
$(U)tile2x11.exe: $(O)tile2x11.o $(O)tiletext.o $(O)tiletxt.o $(O)alloc.o \
|
||||||
$(O)panic.o $(O)monst.o $(O)objects.o
|
$(O)panic.o $(O)monst.o $(O)objects.o
|
||||||
@@ -1377,7 +1375,7 @@ $(U)tile2x11.exe: $(O)tile2x11.o $(O)tiletext.o $(O)tiletxt.o $(O)alloc.o \
|
|||||||
<<
|
<<
|
||||||
|
|
||||||
$(O)tile2x11.o: $(X11)\tile2x11.c $(HACK_H) $(TILE_H) $(INCL)\tile2x11.h
|
$(O)tile2x11.o: $(X11)\tile2x11.c $(HACK_H) $(TILE_H) $(INCL)\tile2x11.h
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -I$(WSHR) /DPACKED_FILE /Fo$@ $(X11)\tile2x11.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -I$(WSHR) /DPACKED_FILE /Fo$@ $(X11)\tile2x11.c
|
||||||
|
|
||||||
$(SRC)\x11tiles: $(U)tile2x11.exe $(WSHR)\monsters.txt $(WSHR)\objects.txt \
|
$(SRC)\x11tiles: $(U)tile2x11.exe $(WSHR)\monsters.txt $(WSHR)\objects.txt \
|
||||||
$(WSHR)\other.txt \
|
$(WSHR)\other.txt \
|
||||||
@@ -1509,7 +1507,7 @@ $(O)sfstruct.o: $(HACK_H) $(SRC)\sfstruct.c
|
|||||||
|
|
||||||
!IFDEF TEST_CROSSCOMPILE
|
!IFDEF TEST_CROSSCOMPILE
|
||||||
$(O)mdlib$(HOST).o: $(SRC)\mdlib.c
|
$(O)mdlib$(HOST).o: $(SRC)\mdlib.c
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ $(SRC)\mdlib.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(SRC)\mdlib.c
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
$(O)mdlib.o: $(SRC)\mdlib.c
|
$(O)mdlib.o: $(SRC)\mdlib.c
|
||||||
@@ -1523,13 +1521,13 @@ $(O)mdlib.o: $(SRC)\mdlib.c
|
|||||||
# These have dual-roles and need to be build for host and target platforms.
|
# These have dual-roles and need to be build for host and target platforms.
|
||||||
#
|
#
|
||||||
$(O)panic_host.o: $(U)panic.c $(CONFIG_H)
|
$(O)panic_host.o: $(U)panic.c $(CONFIG_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ $(U)panic.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ $(U)panic.c
|
||||||
|
|
||||||
$(O)panic.o: $(U)panic.c $(CONFIG_H)
|
$(O)panic.o: $(U)panic.c $(CONFIG_H)
|
||||||
@$(cc) $(cflagsBuild) -Fo$@ $(U)panic.c
|
@$(cc) $(cflagsBuild) -Fo$@ $(U)panic.c
|
||||||
|
|
||||||
$(O)drawing_host.o: drawing.c $(CONFIG_H)
|
$(O)drawing_host.o: drawing.c $(CONFIG_H)
|
||||||
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) $(CROSSCOMPILE_HOST) -Fo$@ drawing.c
|
@$(cc) $(cflagsBuild) $(CROSSCOMPILE) -Fo$@ drawing.c
|
||||||
|
|
||||||
$(O)drawing.o: drawing.c $(CONFIG_H) $(INCL)\color.h $(INCL)\rm.h \
|
$(O)drawing.o: drawing.c $(CONFIG_H) $(INCL)\color.h $(INCL)\rm.h \
|
||||||
$(INCL)\objclass.h $(INCL)\monsym.h
|
$(INCL)\objclass.h $(INCL)\monsym.h
|
||||||
|
|||||||
@@ -1135,13 +1135,13 @@ do_date()
|
|||||||
char githash[BUFSZ], gitbranch[BUFSZ];
|
char githash[BUFSZ], gitbranch[BUFSZ];
|
||||||
char *c, cbuf[60], buf[BUFSZ];
|
char *c, cbuf[60], buf[BUFSZ];
|
||||||
const char *ul_sfx;
|
const char *ul_sfx;
|
||||||
#if defined(CROSSCOMPILE) && defined(CROSSCOMPILE_HOST)
|
#if defined(CROSSCOMPILE) && !defined(CROSSCOMPILE_TARGET)
|
||||||
int steps = 0;
|
int steps = 0;
|
||||||
const char ind[] = " ";
|
const char ind[] = " ";
|
||||||
const char *xpref = "HOST_";
|
const char *xpref = "HOST_";
|
||||||
#else
|
#else
|
||||||
const char *xpref = (const char *) 0;
|
const char *xpref = (const char *) 0;
|
||||||
#endif /* CROSSCOMPILE && CROSSCOMPILE_HOST */
|
#endif /* CROSSCOMPILE && !CROSSCOMPILE_TARGET */
|
||||||
|
|
||||||
/* before creating date.h, make sure that xxx_GRAPHICS and
|
/* before creating date.h, make sure that xxx_GRAPHICS and
|
||||||
DEFAULT_WINDOW_SYS have been set up in a viable fashion */
|
DEFAULT_WINDOW_SYS have been set up in a viable fashion */
|
||||||
@@ -1243,10 +1243,10 @@ do_date()
|
|||||||
ul_sfx = "L";
|
ul_sfx = "L";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(CROSSCOMPILE) || defined(CROSSCOMPILE_HOST)
|
#if !defined(CROSSCOMPILE) || !defined(CROSSCOMPILE_TARGET)
|
||||||
Fprintf(ofp,
|
Fprintf(ofp,
|
||||||
"\n#if !defined(CROSSCOMPILE) || defined(CROSSCOMPILE_HOST)\n");
|
"\n#if !defined(CROSSCOMPILE) || !defined(CROSSCOMPILE_TARGET)\n");
|
||||||
#endif /* CROSSCOMPILE || CROSSCOMPILE_HOST */
|
#endif /* CROSSCOMPILE || !CROSSCOMPILE_TARGET */
|
||||||
if (date_via_env)
|
if (date_via_env)
|
||||||
Fprintf(ofp, "#define SOURCE_DATE_EPOCH (%lu%s) /* via getenv() */\n",
|
Fprintf(ofp, "#define SOURCE_DATE_EPOCH (%lu%s) /* via getenv() */\n",
|
||||||
(unsigned long) clocktim, ul_sfx);
|
(unsigned long) clocktim, ul_sfx);
|
||||||
@@ -1282,13 +1282,13 @@ do_date()
|
|||||||
Fprintf(ofp, "#define NETHACK_GIT_BRANCH \"%s\"\n", gitbranch);
|
Fprintf(ofp, "#define NETHACK_GIT_BRANCH \"%s\"\n", gitbranch);
|
||||||
}
|
}
|
||||||
if (xpref && get_gitinfo(githash, gitbranch)) {
|
if (xpref && get_gitinfo(githash, gitbranch)) {
|
||||||
Fprintf(ofp, "#else /* !CROSSCOMPILE || CROSSCOMPILE_HOST */\n");
|
Fprintf(ofp, "#else /* !CROSSCOMPILE || !CROSSCOMPILE_TARGET */\n");
|
||||||
Fprintf(ofp, "#define NETHACK_%sGIT_SHA \"%s\"\n",
|
Fprintf(ofp, "#define NETHACK_%sGIT_SHA \"%s\"\n",
|
||||||
xpref, githash);
|
xpref, githash);
|
||||||
Fprintf(ofp, "#define NETHACK_%sGIT_BRANCH \"%s\"\n",
|
Fprintf(ofp, "#define NETHACK_%sGIT_BRANCH \"%s\"\n",
|
||||||
xpref, gitbranch);
|
xpref, gitbranch);
|
||||||
}
|
}
|
||||||
Fprintf(ofp, "#endif /* !CROSSCOMPILE || CROSSCOMPILE_HOST */\n");
|
Fprintf(ofp, "#endif /* !CROSSCOMPILE || !CROSSCOMPILE_TARGET */\n");
|
||||||
Fprintf(ofp, "\n");
|
Fprintf(ofp, "\n");
|
||||||
#ifdef AMIGA
|
#ifdef AMIGA
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user