Change the handling for windowing system specific files so that when building for more than one set, each gets compiled as a set instead of some being interspersed among rival window systems. Put differently, handle tile.o specially so that there's no need for the hints to sort the WINOBJ list in order to avoid tile.o duplication. So the order of compilation is common source files unix-specific files tty files curses files X11 files Qt files tile.c (if applicable), version.c, date.c Previously, some of the X11 files were scattered around among the others because of the spelling of their file names. Only matters if you're watching the progress of a build.
116 lines
2.7 KiB
Plaintext
116 lines
2.7 KiB
Plaintext
#------------------------------------------------------------------------------
|
|
# NetHack 3.7 multiw-2.370 $NHDT-Date: 1599337709 2020/09/05 20:28:29 $ $NHDT-Branch: NetHack-3.7 $
|
|
#
|
|
# Sorts out support for multiple window ports (interfaces) to included in the build.
|
|
#
|
|
# Included from:
|
|
# hints/linux.370
|
|
# hints/macOS.370
|
|
#
|
|
# The following will be set appropriately following this:
|
|
# - WANT_WIN_XXX (at least one will be set; default is TTY)
|
|
# - WANT_DEFAULT (set to match one of the enabled WANT_WIN_XXX)
|
|
# - WINCFLAGS
|
|
# - WINSRC
|
|
# - WINOBJ0
|
|
#---
|
|
# User selections could be specified as combinations of any of the following:
|
|
# WIN_WANT_TTY=1, WIN_WANT_CURSES=1, WIN_WANT_QT=1, WIN_WANT_X11=1
|
|
# The selections will all be linked into the same binary.
|
|
#
|
|
# Assuming you have the prerequisite packages mentioned above, you can
|
|
# specify, right on the make command line, which window ports (or interfaces)
|
|
# to include in your build. Doing it via the make command line means that won't
|
|
# have to edit the Makefile.
|
|
#
|
|
# make WANT_WIN_QT=1 WANT_WIN_X11=1 WANT_WIN_CURSES=1 WANT_WIN_TTY=1 install
|
|
#
|
|
# Add WANT_DEFAULT=Qt (or other interface) if you want nethack to use
|
|
# something other than tty as the default interface.
|
|
#
|
|
|
|
ifdef WANT_WIN_ALL
|
|
WANT_WIN_TTY=1
|
|
WANT_WIN_CURSES=1
|
|
WANT_WIN_X11=1
|
|
WANT_WIN_QT=1
|
|
else
|
|
# Make sure that at least one interface is enabled.
|
|
ifndef WANT_WIN_TTY
|
|
ifndef WANT_WIN_CURSES
|
|
ifndef WANT_WIN_X11
|
|
ifndef WANT_WIN_QT
|
|
WANT_WIN_TTY=1
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifdef WANT_LIBNH
|
|
WANT_DEFAULT=shim
|
|
endif
|
|
|
|
# Make sure that a default interface is specified; this doesn't guarantee
|
|
# sanity for something like 'make WANT_WIN_CURSES=1 WANT_DEFAULT=X11' but
|
|
# 'makedefs -v' would notice, complain, and quit causing 'make' to quit.
|
|
ifndef WANT_DEFAULT
|
|
# pick the first one enabled among { tty, curses, X11, Qt }
|
|
ifdef WANT_WIN_TTY
|
|
WANT_DEFAULT=tty
|
|
else
|
|
ifdef WANT_WIN_CURSES
|
|
WANT_DEFAULT=curses
|
|
else
|
|
ifdef WANT_WIN_X11
|
|
WANT_DEFAULT=X11
|
|
else
|
|
ifdef WANT_WIN_QT
|
|
WANT_DEFAULT=Qt
|
|
else
|
|
# ? shouldn't be able to get here...
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
WINCFLAGS=
|
|
WINSRC =
|
|
WINOBJ0 =
|
|
XTRASRC =
|
|
XTRAOBJ =
|
|
|
|
ifdef WANT_WIN_TTY
|
|
WINSRC += $(WINTTYSRC)
|
|
WINOBJ0 += $(WINTTYOBJ)
|
|
else
|
|
WINCFLAGS += -DNOTTYGRAPHICS
|
|
endif
|
|
|
|
ifdef WANT_WIN_CURSES
|
|
WINCFLAGS += -DCURSES_GRAPHICS
|
|
WINSRC += $(WINCURSESSRC)
|
|
WINOBJ0 += $(WINCURSESOBJ)
|
|
endif
|
|
|
|
ifdef WANT_WIN_X11
|
|
WINCFLAGS += -DX11_GRAPHICS
|
|
WINSRC += $(WIINX11SRC)
|
|
WINOBJ0 += $(WINX11OBJ)
|
|
XTRASRC += tile.c
|
|
XTRAOBJ += $(TARGETPFX)tile.o
|
|
endif
|
|
|
|
ifdef WANT_WIN_QT
|
|
WINCFLAGS += -DQT_GRAPHICS
|
|
WINSRC += $(WINQTSRC)
|
|
WINOBJ0 += $(WINQTOBJ)
|
|
XTRASRC += tile.c
|
|
XTRAOBJ += $(TARGETPFX)tile.o
|
|
endif
|
|
|
|
#end of hints/include/multiw-2.370
|
|
#------------------------------------------------------------------------------
|
|
|