<Someone> passed on some OS/2 changes:
> <Someone> made several recommendations and has greatly improved the > OS/2 makefile.
This commit is contained in:
+83
-89
@@ -3,22 +3,11 @@
|
|||||||
# Copyright (C) 1990, 1991, 1992, 1993, 1996 Timo Hakulinen
|
# Copyright (C) 1990, 1991, 1992, 1993, 1996 Timo Hakulinen
|
||||||
#
|
#
|
||||||
# Several compilers exist for OS/2 but, currently only GCC emx is tested
|
# Several compilers exist for OS/2 but, currently only GCC emx is tested
|
||||||
# and used for releases. make programs other than dmake are not tested
|
# and used for releases. make programs other than dmake are not tested.
|
||||||
# and the support is left here for historic purposes.
|
|
||||||
#
|
#
|
||||||
# Supported compilers: GCC emx 0.9g
|
# Supported compilers: GCC emx 0.9g
|
||||||
#
|
#
|
||||||
# NDMAKE ver 4.5, Microsoft/IBM NMAKE, or Dennis Vadura's DMAKE is
|
# DMAKE is required. Credit for the makefile improvements goes to Pekka Rousu.
|
||||||
# required; old MS-MAKE will not work. To enable the appropriate
|
|
||||||
# make utility, uncomment the respective make-specific macros. If
|
|
||||||
# you plan to cross-compile in DOS, your best bet is NDMAKE, since
|
|
||||||
# it requires less memory than NMAKE. To compile in OS/2 use NMAKE,
|
|
||||||
# DMAKE or something compatible. Remember to set $(RLIBS) to real mode
|
|
||||||
# libraries if cross-compiling in DOS, and to protected mode libraries
|
|
||||||
# for compilation in OS/2.
|
|
||||||
#
|
|
||||||
# GNU MAKE for OS/2 seems to be too limited / braindamaged at the
|
|
||||||
# moment for me to bother implementing support for it. Maybe later.
|
|
||||||
#
|
#
|
||||||
# Copy this file into $(SRC) directory, rename it to "makefile"
|
# Copy this file into $(SRC) directory, rename it to "makefile"
|
||||||
# (important, many targets rely on it), compile and link inside
|
# (important, many targets rely on it), compile and link inside
|
||||||
@@ -48,65 +37,55 @@
|
|||||||
# Compiler and linker selection.
|
# Compiler and linker selection.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#format = omf
|
||||||
|
format = a.out
|
||||||
|
|
||||||
|
.IF $(format) == a.out
|
||||||
|
with_x11 = yes
|
||||||
|
#debug = yes
|
||||||
|
.END
|
||||||
|
|
||||||
|
|
||||||
CC = gcc # GCC
|
CC = gcc # GCC
|
||||||
|
|
||||||
|
.IF $(format) == a.out
|
||||||
LINK = gcc
|
LINK = gcc
|
||||||
#LINK = link386 # GCC OMF, CSet/2
|
#LINK = link386 # GCC OMF, CSet/2
|
||||||
|
.ELSE
|
||||||
|
LINK = link386 # GCC OMF, CSet/2
|
||||||
|
LFLAGS = /noig /stack:40000
|
||||||
|
.END
|
||||||
|
|
||||||
#
|
.IF $(with_x11) == yes
|
||||||
# Uncomment the following to compile for X11 and set X11ROOT apropriately
|
WINX11OBJ01 = $(OBJ)/Window.o
|
||||||
#
|
WINX11OBJ02 = $(OBJ)/dialogs.o
|
||||||
#WINX11OBJ01 = $(OBJ)/Window.o
|
WINX11OBJ03 = $(OBJ)/winX.o
|
||||||
#WINX11OBJ02 = $(OBJ)/dialogs.o
|
WINX11OBJ04 = $(OBJ)/winmap.o
|
||||||
#WINX11OBJ03 = $(OBJ)/winX.o
|
WINX11OBJ05 = $(OBJ)/winmenu.o
|
||||||
#WINX11OBJ04 = $(OBJ)/winmap.o
|
WINX11OBJ06 = $(OBJ)/winmesg.o
|
||||||
#WINX11OBJ05 = $(OBJ)/winmenu.o
|
WINX11OBJ07 = $(OBJ)/winmisc.o
|
||||||
#WINX11OBJ06 = $(OBJ)/winmesg.o
|
WINX11OBJ08 = $(OBJ)/winstat.o
|
||||||
#WINX11OBJ07 = $(OBJ)/winmisc.o
|
WINX11OBJ09 = $(OBJ)/wintext.o
|
||||||
#WINX11OBJ08 = $(OBJ)/winstat.o
|
WINX11OBJ10 = $(OBJ)/winval.o
|
||||||
#WINX11OBJ09 = $(OBJ)/wintext.o
|
WINX11OBJ11 = $(OBJ)/tile.o
|
||||||
#WINX11OBJ10 = $(OBJ)/winval.o
|
X11ROOT = e:/xfree86
|
||||||
#WINX11OBJ11 = $(OBJ)/tile.o
|
WINX11CFLAGS = -DUSE_XPM -DX11_GRAPHICS \
|
||||||
#X11ROOT = e:/xfree86
|
-I$(X11ROOT)/include -Zmtd
|
||||||
#WINX11CFLAGS = -DUSE_XPM -DX11_GRAPHICS \
|
WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11 -lXpm -L$(X11ROOT)/lib -lc_app
|
||||||
# -I$(X11ROOT)/include -Zmtd
|
WINX11SRC = ../win/X11/Window.c ../win/X11/dialogs.c ../win/X11/winX.c \
|
||||||
#WINX11LIB = -lXaw -lXmu -lXext -lXt -lX11 -lXpm -L$(X11ROOT)/lib -lc_app
|
../win/X11/winmap.c ../win/X11/winmenu.c ../win/X11/winmesg.c \
|
||||||
#WINX11SRC = ../win/X11/Window.c ../win/X11/dialogs.c ../win/X11/winX.c \
|
../win/X11/winmisc.c ../win/X11/winstat.c ../win/X11/wintext.c \
|
||||||
# ../win/X11/winmap.c ../win/X11/winmenu.c ../win/X11/winmesg.c \
|
../win/X11/winval.c tile.c
|
||||||
# ../win/X11/winmisc.c ../win/X11/winstat.c ../win/X11/wintext.c \
|
WINX11OBJ = $(WINX11OBJ01) $(WINX11OBJ02) $(WINX11OBJ03) $(WINX11OBJ04) \
|
||||||
# ../win/X11/winval.c tile.c
|
$(WINX11OBJ05) $(WINX11OBJ06) $(WINX11OBJ07) $(WINX11OBJ08) \
|
||||||
#WINX11OBJ = $(WINX11OBJ01) $(WINX11OBJ02) $(WINX11OBJ03) $(WINX11OBJ04) \
|
$(WINX11OBJ09) $(WINX11OBJ10) $(WINX11OBJ11)
|
||||||
# $(WINX11OBJ05) $(WINX11OBJ06) $(WINX11OBJ07) $(WINX11OBJ08) \
|
WINX11VARDAT=x11tiles pet_mark.xbm rip.xpm
|
||||||
# $(WINX11OBJ09) $(WINX11OBJ10) $(WINX11OBJ11)
|
X11ECHO = $(CMD) @echo
|
||||||
#WINX11VARDAT=x11tiles pet_mark.xbm rip.xpm
|
.END
|
||||||
#X11ECHO = $(CMD) @echo
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Make syntax peculiarities.
|
|
||||||
#
|
|
||||||
# Enable the uppermost eight lines for NDMAKE, the middle eight
|
|
||||||
# for NMAKE (MSC, CSet/2), and the lowermost eight for DMAKE.
|
|
||||||
#
|
|
||||||
|
|
||||||
#MAKEB = ndmake # Executable name (change if necessary)
|
|
||||||
#CMD = # Command processor name if required
|
|
||||||
#AB = $*.c # Base name of the target in target action
|
|
||||||
#CB = $*.c # - " - dependent
|
|
||||||
#BEG = ( # Command line begin in shell one-liners
|
|
||||||
#END = ) # - " - end - " -
|
|
||||||
#SEP = ; # Command separator - " -
|
|
||||||
#P = % # Literal percent sign
|
|
||||||
#MAKEB = nmake
|
|
||||||
#CMD =
|
|
||||||
#AB = $(@B).c
|
|
||||||
#CB = $$(@B).c
|
|
||||||
#BEG = (
|
|
||||||
#END = )
|
|
||||||
#SEP = &
|
|
||||||
#P = %%
|
|
||||||
MAKEB = dmake
|
MAKEB = dmake
|
||||||
CMD = cmd /C
|
CMD = cmd /C
|
||||||
AB = $(@:B).c
|
AB = $(@:B).c
|
||||||
@@ -118,8 +97,7 @@ P = %
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Most makes execute actions automatically inside a subshell,
|
# Most makes execute actions automatically inside a subshell,
|
||||||
# which makes even the shell internals work ok. This applies
|
# which makes even the shell internals work ok.
|
||||||
# to NDMAKE and NMAKE. DMAKE wants it spelled out for it.
|
|
||||||
#
|
#
|
||||||
|
|
||||||
ECHO = $(CMD) @echo
|
ECHO = $(CMD) @echo
|
||||||
@@ -168,7 +146,7 @@ LEXYYC = lexyy.c
|
|||||||
# Source tree base directory.
|
# Source tree base directory.
|
||||||
#
|
#
|
||||||
|
|
||||||
NHSRC = \nethack-3.4.0
|
NHSRC = \nethack
|
||||||
|
|
||||||
#
|
#
|
||||||
# Source directories. Makedefs hardcodes these, don't change them.
|
# Source directories. Makedefs hardcodes these, don't change them.
|
||||||
@@ -197,7 +175,7 @@ WINSHARE= $(NHSRC)\win\share # Shared system files
|
|||||||
|
|
||||||
OBJ = \tmp\obj # Object files
|
OBJ = \tmp\obj # Object files
|
||||||
TEMP = \tmp\bin # Temporary files during make process
|
TEMP = \tmp\bin # Temporary files during make process
|
||||||
GAMEDIR = \games\nh34x11 # Game directory
|
GAMEDIR = \games\nh341x11 # Game directory
|
||||||
PLIBP = c:\emx\lib # Protected mode C libraries
|
PLIBP = c:\emx\lib # Protected mode C libraries
|
||||||
RLIBP = c:\emx\lib # Possible real mode C libraries
|
RLIBP = c:\emx\lib # Possible real mode C libraries
|
||||||
|
|
||||||
@@ -206,7 +184,7 @@ RLIBP = c:\emx\lib # Possible real mode C libraries
|
|||||||
#
|
#
|
||||||
|
|
||||||
GAME = nethack
|
GAME = nethack
|
||||||
GAMEDES = "NetHack 3.4"
|
GAMEDES = "NetHack 3.4.1"
|
||||||
|
|
||||||
#
|
#
|
||||||
# The uppermost two lines for MSC, the middle two for GCC, and
|
# The uppermost two lines for MSC, the middle two for GCC, and
|
||||||
@@ -218,7 +196,7 @@ GAMEDES = "NetHack 3.4"
|
|||||||
|
|
||||||
CFLAGS = -c $(GCCO) $(WARN) -I$(INCL) $(CDFLAGS) $(STDC) $(WINX11CFLAGS)
|
CFLAGS = -c $(GCCO) $(WARN) -I$(INCL) $(CDFLAGS) $(STDC) $(WINX11CFLAGS)
|
||||||
#OPT = -s -O -o
|
#OPT = -s -O -o
|
||||||
OPT =
|
OPT = -o
|
||||||
|
|
||||||
#
|
#
|
||||||
# Compiler warning levels. These are really for development, so
|
# Compiler warning levels. These are really for development, so
|
||||||
@@ -239,8 +217,11 @@ WARN = #-W -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wcast-q
|
|||||||
# object format, the lower for Unix style a.out format.
|
# object format, the lower for Unix style a.out format.
|
||||||
#
|
#
|
||||||
|
|
||||||
#GCCO = -Zomf -Zsys # GCC OMF
|
.IF $(format) == omf
|
||||||
GCCO = # GCC a.out
|
GCCO = -Zomf -Zsys
|
||||||
|
.ELSE
|
||||||
|
GCCO =
|
||||||
|
.END
|
||||||
|
|
||||||
#
|
#
|
||||||
# MSC 5.1 needs the large model first pass of the compiler.
|
# MSC 5.1 needs the large model first pass of the compiler.
|
||||||
@@ -259,11 +240,13 @@ CL =
|
|||||||
# Prepare for a debugger.
|
# Prepare for a debugger.
|
||||||
#
|
#
|
||||||
|
|
||||||
#LFLAGS = /noig /stack:40000 # GCC OMF
|
.IF $(debug) == yes
|
||||||
CDFLAGS = -O -s
|
CDFLAGS =
|
||||||
LDFLAGS =
|
LDFLAGS =
|
||||||
#CDFLAGS = -g # GDB (GCC a.out)
|
.ELSE
|
||||||
#LDFLAGS = -g # - " -
|
CDFLAGS = -O -s
|
||||||
|
LDFLAGS = -s
|
||||||
|
.END
|
||||||
|
|
||||||
#
|
#
|
||||||
# How to produce the most ANSI-like environment.
|
# How to produce the most ANSI-like environment.
|
||||||
@@ -275,8 +258,11 @@ STDC = -ansi # GCC
|
|||||||
# Possible system object files required during linking.
|
# Possible system object files required during linking.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
.IF $(format) == omf
|
||||||
|
SYSOBJ = $(PLIBP)\crt0.obj $(PLIBP)\end.lib# GCC OMF
|
||||||
|
.ELSE
|
||||||
SYSOBJ = # MSC, GCC a.out, CSet/2
|
SYSOBJ = # MSC, GCC a.out, CSet/2
|
||||||
#SYSOBJ = $(PLIBP)\crt0.obj $(PLIBP)\end.lib# GCC OMF
|
.END
|
||||||
|
|
||||||
#
|
#
|
||||||
# Compiler library selection. Change if necessary.
|
# Compiler library selection. Change if necessary.
|
||||||
@@ -289,8 +275,11 @@ SYSOBJ = # MSC, GCC a.out, CSet/2
|
|||||||
# OS/2 API entry points.
|
# OS/2 API entry points.
|
||||||
#
|
#
|
||||||
|
|
||||||
#PLIBS = $(PLIBP)\st\c $(PLIBP)\st\c_app $(PLIBP)\c_alias $(PLIBP)\gcc $(PLIBP)\st\sys $(PLIBP)\os2 # GCC emx 0.9 OMF
|
.IF $(format) == omf
|
||||||
PLIBS = -lgcc -lc -lgcc -los2 $(X11LIBS) # GCC a.out
|
PLIBS = $(PLIBP)\st\c $(PLIBP)\st\c_app $(PLIBP)\c_alias $(PLIBP)\gcc $(PLIBP)\st\sys $(PLIBP)\os2 # GCC emx 0.9 OMF
|
||||||
|
.ELSE
|
||||||
|
PLIBS = -lgcc -lc -lgcc -los2 $(X11LIBS) # GCC a.out
|
||||||
|
.END
|
||||||
|
|
||||||
#
|
#
|
||||||
# C libraries used by makedefs, lev_comp and dgn_comp (change if
|
# C libraries used by makedefs, lev_comp and dgn_comp (change if
|
||||||
@@ -311,22 +300,25 @@ WINCC = $(BEG) cd $(WIN) $(SEP) $(CC) $(CFLAGS) $(OPT) $@ $(AB) $(END)
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Default linker skeletons. The upper six lines for everything
|
# Default linker skeletons. The upper six lines for everything
|
||||||
# that uses standard OS/2 object format (MSC, CSet/2, GCC OMF),
|
# that uses standard OS/2 object format (GCC OMF), The lower six
|
||||||
# the lower six for GCC a.out format.
|
# for GCC a.out format.
|
||||||
#
|
#
|
||||||
|
|
||||||
#GAMELN = $(LINK) @$(TEMP)\$(GAME).rsp
|
.IF $(format) == omf
|
||||||
#MKDFLN = $(LINK) @$(TEMP)\makedefs.rsp
|
GAMELN = $(LINK) @$(TEMP)\$(GAME).rsp
|
||||||
#LEVCLN = $(LINK) @$(TEMP)\lev_comp.rsp
|
MKDFLN = $(LINK) @$(TEMP)\makedefs.rsp
|
||||||
#DGNCLN = $(LINK) @$(TEMP)\dgn_comp.rsp
|
LEVCLN = $(LINK) @$(TEMP)\lev_comp.rsp
|
||||||
#RCVRLN = $(LINK) @$(TEMP)\recover.rsp
|
DGNCLN = $(LINK) @$(TEMP)\dgn_comp.rsp
|
||||||
#DLBRLN = $(LINK) @$(TEMP)\dlb.rsp
|
RCVRLN = $(LINK) @$(TEMP)\recover.rsp
|
||||||
GAMELN = $(CC) $(LDFLAGS) -o $(GAMEDIR)\$(GAME).exe @$(TEMP)\$(GAME).r $(PLIBS) $(WINX11CFLAGS) $(WINX11LIB)
|
DLBRLN = $(LINK) @$(TEMP)\dlb.rsp
|
||||||
|
.ELSE
|
||||||
|
GAMELN = $(CC) $(LDFLAGS) -o $(GAMEDIR)\$(GAME).exe @$(TEMP)\$(GAME).r $(PLIBS) $(WINX11CFLAGS) $(WINX11LIB)
|
||||||
MKDFLN = $(CC) $(LDFLAGS) -o $(TEMP)\makedefs.exe $(TEMP)\$(MKDFDEF) $(SYSOBJ) $(MAKEOBJS) $(PLIBS)
|
MKDFLN = $(CC) $(LDFLAGS) -o $(TEMP)\makedefs.exe $(TEMP)\$(MKDFDEF) $(SYSOBJ) $(MAKEOBJS) $(PLIBS)
|
||||||
LEVCLN = $(CC) $(LDFLAGS) -o $(TEMP)\lev_comp.exe $(TEMP)\$(LEVCDEF) $(SYSOBJ) $(SPLEVOBJS) $(PLIBS)
|
LEVCLN = $(CC) $(LDFLAGS) -o $(TEMP)\lev_comp.exe $(TEMP)\$(LEVCDEF) $(SYSOBJ) $(SPLEVOBJS) $(PLIBS)
|
||||||
DGNCLN = $(CC) $(LDFLAGS) -o $(TEMP)\dgn_comp.exe $(TEMP)\$(DGNCDEF) $(SYSOBJ) $(DGNCOMPOBJS) $(PLIBS)
|
DGNCLN = $(CC) $(LDFLAGS) -o $(TEMP)\dgn_comp.exe $(TEMP)\$(DGNCDEF) $(SYSOBJ) $(DGNCOMPOBJS) $(PLIBS)
|
||||||
RCVRLN = $(CC) $(LDFLAGS) -o $(GAMEDIR)\recover.exe $(TEMP)\$(RCVRDEF) $(SYSOBJ) $(RECOVOBJS) $(PLIBS)
|
RCVRLN = $(CC) $(LDFLAGS) -o $(GAMEDIR)\recover.exe $(TEMP)\$(RCVRDEF) $(SYSOBJ) $(RECOVOBJS) $(PLIBS)
|
||||||
DLBRLN = $(CC) $(LDFLAGS) -o $(TEMP)\dlb.exe $(TEMP)\$(DLBDEF) $(SYSOBJ) $(DLBOBJS) $(PLIBS)
|
DLBRLN = $(CC) $(LDFLAGS) -o $(TEMP)\dlb.exe $(TEMP)\$(DLBDEF) $(SYSOBJ) $(DLBOBJS) $(PLIBS)
|
||||||
|
.END
|
||||||
|
|
||||||
#
|
#
|
||||||
# OS/2 module definition files for NetHack,
|
# OS/2 module definition files for NetHack,
|
||||||
@@ -886,6 +878,7 @@ $(TEMP)\$(GAME).r : $(HOBJ) $(TEMP)\$(GAMEDEF)
|
|||||||
$(ECHO) $(WINOBJ4) >> $@
|
$(ECHO) $(WINOBJ4) >> $@
|
||||||
$(ECHO) $(HHOBJ) >> $@
|
$(ECHO) $(HHOBJ) >> $@
|
||||||
$(ECHO) $(RANDOM) >> $@
|
$(ECHO) $(RANDOM) >> $@
|
||||||
|
.IF $(with_x11) == yes
|
||||||
$(X11ECHO) $(WINX11OBJ01) >> $@
|
$(X11ECHO) $(WINX11OBJ01) >> $@
|
||||||
$(X11ECHO) $(WINX11OBJ02) >> $@
|
$(X11ECHO) $(WINX11OBJ02) >> $@
|
||||||
$(X11ECHO) $(WINX11OBJ03) >> $@
|
$(X11ECHO) $(WINX11OBJ03) >> $@
|
||||||
@@ -897,6 +890,7 @@ $(TEMP)\$(GAME).r : $(HOBJ) $(TEMP)\$(GAMEDEF)
|
|||||||
$(X11ECHO) $(WINX11OBJ09) >> $@
|
$(X11ECHO) $(WINX11OBJ09) >> $@
|
||||||
$(X11ECHO) $(WINX11OBJ10) >> $@
|
$(X11ECHO) $(WINX11OBJ10) >> $@
|
||||||
$(X11ECHO) $(WINX11OBJ11) >> $@
|
$(X11ECHO) $(WINX11OBJ11) >> $@
|
||||||
|
.END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user