Change all the POSTINSTALL 'mkfontdir' to 'mkfontdir -x .lev' although the mkfontdir version on my system didn't think $(HACKDIR)/*.lev were font files when I built without dlb. Also change the PREINSTALL 'cp -n win/X11/nethack.rc ~/.nethackrc' to keep going if it fails. The linux hints use 'cp -n' for sysconf but since it is doing so for the playground directory and 'make install' starts out by clearing away everything in that directory, it shouldn't fail. But some extra bullet proofing there may be warranted. Only the initial cp is protected against clobbering an existing file; the ownership+permission fixups that are applied to the copy of original file still get applied to an existing one.
145 lines
4.6 KiB
Plaintext
145 lines
4.6 KiB
Plaintext
#
|
|
# NetHack 3.6 macosx $NHDT-Date: 1566346603 2019/08/21 00:16:43 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.20 $
|
|
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
|
# NetHack may be freely redistributed. See license for details.
|
|
#
|
|
#-PRE
|
|
# Mac OS X (Darwin) hints file
|
|
# This is for Mac OS X 10.4 (Darwin 8.10). Use one of the more specific
|
|
# hints files for later versions.
|
|
# Useful info: http://www.opensource.apple.com/darwinsource/index.html
|
|
|
|
# This hints file can build several different types of installations.
|
|
# Edit the next section to match the type of build you need.
|
|
|
|
# 1. Which window system(s) should be included in this binary?
|
|
WANT_WIN_TTY=1
|
|
#WANT_WIN_X11=1
|
|
#WANT_WIN_QT=1
|
|
|
|
# 1a. What is the default window system?
|
|
WANT_DEFAULT=tty
|
|
#WANT_DEFAULT=x11
|
|
#WANT_DEFAULT=qt
|
|
|
|
# 1b. If you set WANT_WIN_QT, you need to
|
|
# A) set QTDIR either here or in the environment to point to the Qt2 or Qt3
|
|
# library installation root. (Qt4 will not work; Qt3 does not presently
|
|
# compile under Leopard (MacOSX 10.5) out-of-the-box.)
|
|
# B) set XPMLIB to point to the Xpm library
|
|
ifdef WANT_WIN_QT
|
|
QTDIR=/Developer/Qt
|
|
LIBXPM= -L/Developer/SDKs/MacOSX10.3.9.sdk/usr/X11R6/lib -lXpm
|
|
endif
|
|
|
|
# 2. Is this a build for a binary that will be shared among different users
|
|
# or will it be private to you?
|
|
# If it is shared:
|
|
# - it will be owned by the user and group listed
|
|
# - you MUST create the user using System Preferences (this will also
|
|
# create the group if it is the same as the user)
|
|
# - 'make install' must be run as "sudo make install"
|
|
#WANT_SHARE_INSTALL=1
|
|
GAMEUID = games
|
|
GAMEGRP = $(GAMEUID)
|
|
|
|
|
|
#CC=gcc -W -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -DGCC_WARN
|
|
CC=gcc -Wall -Wextra -Wno-missing-field-initializers -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wwrite-strings -DGCC_WARN
|
|
|
|
#
|
|
# You shouldn't need to change anything below here.
|
|
#
|
|
|
|
# XXX -g vs -O should go here, -I../include goes in the makefile
|
|
CFLAGS=-g -I../include
|
|
CFLAGS+=-DNOCLIPPING -DNOMAIL -DNOTPARMDECL -DHACKDIR=\"$(HACKDIR)\"
|
|
CFLAGS+= -DDEFAULT_WINDOW_SYS=\"$(WANT_DEFAULT)\" -DDLB
|
|
|
|
ifdef WANT_WIN_TTY
|
|
WINSRC = $(WINTTYSRC)
|
|
WINOBJ = $(WINTTYOBJ)
|
|
WINLIB = $(WINTTYLIB)
|
|
WINTTYLIB=-lncurses
|
|
else
|
|
CFLAGS += -DNOTTYGRAPHICS
|
|
endif
|
|
|
|
ifdef WANT_WIN_X11
|
|
WINSRC += $(WINX11SRC)
|
|
WINOBJ += $(WINX11OBJ)
|
|
WINLIB += $(WINX11LIB)
|
|
LFLAGS=-L/usr/X11R6/lib
|
|
VARDATND = x11tiles NetHack.ad pet_mark.xbm pilemark.xbm
|
|
POSTINSTALL= bdftopcf win/X11/nh10.bdf > $(INSTDIR)/nh10.pcf; ( cd $(INSTDIR); mkfontdir -x .lev )
|
|
CFLAGS += -DX11_GRAPHICS
|
|
endif
|
|
|
|
ifdef WANT_WIN_QT
|
|
CFLAGS += -DQT_GRAPHICS -DNOUSER_SOUNDS
|
|
CFLAGS += -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4
|
|
LINK=g++
|
|
WINSRC += $(WINQTSRC)
|
|
WINLIB += $(WINQTLIB) $(LIBXPM)
|
|
WINLIB += -framework Carbon -framework QuickTime -lz -framework OpenGL
|
|
WINLIB += -framework AGL
|
|
ifdef WANT_WIN_X11
|
|
# prevent duplicate tile.o in WINOBJ
|
|
WINOBJ = $(sort $(WINQTOBJ) $(WINX11OBJ))
|
|
ifdef WANT_WIN_TTY
|
|
WINOBJ += $(WINTTYOBJ)
|
|
endif
|
|
else
|
|
WINOBJ += $(WINQTOBJ)
|
|
endif
|
|
# XXX if /Developer/qt exists and QTDIR not set, use that
|
|
ifndef QTDIR
|
|
$(error QTDIR not defined in the environment or Makefile)
|
|
endif
|
|
# XXX make sure QTDIR points to something reasonable
|
|
else
|
|
LINK=$(CC)
|
|
endif
|
|
|
|
ifdef WANT_SHARE_INSTALL
|
|
# NB: do NOT use $(wildcard ~$(GAMEUID)) since the user may not exist yet.
|
|
PREFIX:=/Users/$(GAMEUID)
|
|
SHELLDIR=$(PREFIX)/bin
|
|
HACKDIR=$(PREFIX)/nethackdir
|
|
INSTDIR=$(HACKDIR)
|
|
VARDIR=$(HACKDIR)
|
|
CHOWN=chown
|
|
CHGRP=chgrp
|
|
# We run sgid so the game has access to both HACKDIR and user preferences.
|
|
GAMEPERM = 02755
|
|
VARFILEPERM = 0664
|
|
VARDIRPERM = 0775
|
|
ROOTCHECK= [[ `id -u` == 0 ]] || ( echo "Must run install with sudo."; exit 1)
|
|
# make sure we have group GAMEUID and group GAMEGRP
|
|
PREINSTALL= . sys/unix/hints/macosx.sh user $(GAMEUID); . sys/unix/hints/macosx.sh group $(GAMEGRP); mkdir $(SHELLDIR); chown $(GAMEUID) $(SHELLDIR)
|
|
POSTINSTALL= touch $(INSTDIR)/sysconf; $(CHOWN) $(GAMEUID) $(INSTDIR)/sysconf; $(CHGRP) $(GAMEGRP) $(INSTDIR)/sysconf; chmod $(VARFILEPERM) $(INSTDIR)/sysconf
|
|
CFLAGS+=-DSYSCF -DSYSCF_FILE=\"$(HACKDIR)/sysconf\" -DSECURE
|
|
else
|
|
PREFIX:=$(wildcard ~)
|
|
SHELLDIR=$(PREFIX)/bin
|
|
HACKDIR=$(PREFIX)/nethackdir
|
|
INSTDIR=$(HACKDIR)
|
|
VARDIR=$(HACKDIR)
|
|
CHOWN=true
|
|
CHGRP=true
|
|
GAMEPERM = 0700
|
|
VARFILEPERM = 0600
|
|
VARDIRPERM = 0700
|
|
ifdef WANT_WIN_X11
|
|
# XXX install nethack.rc as ~/.nethackrc if no ~/.nethackrc exists
|
|
endif
|
|
endif
|
|
|
|
|
|
# ~/Library/Preferences/NetHack Defaults
|
|
# OPTIONS=name:player,number_pad,menustyle:partial,!time,showexp
|
|
# OPTIONS=hilite_pet,toptenwin,msghistory:200,windowtype:Qt
|
|
#
|
|
# Install.Qt mentions a patch for macos - it's not there (it seems to be in the Qt binary
|
|
# package under the docs directory).
|