summaryrefslogtreecommitdiff
path: root/src/makefile.emx
diff options
context:
space:
mode:
Diffstat (limited to 'src/makefile.emx')
-rw-r--r--src/makefile.emx205
1 files changed, 205 insertions, 0 deletions
diff --git a/src/makefile.emx b/src/makefile.emx
new file mode 100644
index 00000000..214932dd
--- /dev/null
+++ b/src/makefile.emx
@@ -0,0 +1,205 @@
+# File: Makefile.emx
+
+# Purpose: Makefile support for "main-emx.c"
+
+# Note: Use 'dmake -B -r -f makefile.emx' to compile (see "main-emx.c" for details).
+# Use 'dmake -B -r -f makefile.emx install' to install the executables
+# and the batch file used for multiple VIO windows in the parent directory.
+#
+# Use 'dmake -B -r -f makefile.emx clean' to remove temporary files.
+#
+# Advanced targets (used only by developers):
+#
+# 'patches': If the original sources are located in "..\old\src",
+# then a file "..\patches.txt" will be created which contains
+# all changed files (diff -c). "..\exp\patches.uue" will
+# contain the same file gziped and uuencodes. "..\exp\files.uue"
+# will contain the three emx-specific files tared, gziped and
+# uuencoded. Needs 4OS2.
+#
+# 'export': The file "..\exp\$(EXPORT)" is created so that it
+# can directly be uploaded as an official distribution archive.
+# Needs 4OS2.
+#
+
+VERSION = 279v5
+EXPORT = angband-$(VERSION).os2.zip
+
+CC = gcc
+AR = ar
+CFLAGS = -MMD -O3 -DUSE_EMX -Zmt
+LFLAGS = -lvideo
+
+# Uncomment this if you have nice installed
+#NICE = nice -i -n -30
+
+###################################################################################
+
+.KEEP_STATE:
+
+default: all depends :-)
+
+install: ..\angband.exe ..\aclient.exe ..\startwnd.cmd
+
+clean:
+ -+@ del angband.exe
+ -+@ del aclient.exe
+ -+@ del depends
+ -+@ del _state.mk
+ -+@ del *.a
+ -+@ del *.d
+ -+@ del *.o
+
+patches: ..\patches.txt ..\exp\patches.uue ..\exp\files.uue
+
+export: ..\exp\$(EXPORT)
+
+####################################################################################
+### You don't have to change anything below. ###################################
+####################################################################################
+
+OBJS = \
+ z-util.o z-virt.o z-form.o z-rand.o z-term.o z-sock.o \
+ variable.o tables.o util.o cave.o \
+ object1.o object2.o traps.o monster1.o monster2.o monster3.o \
+ xtra1.o xtra2.o spells1.o spells2.o \
+ melee1.o melee2.o files.o cmovie.o \
+ status.o randart.o gods.o modules.o \
+ cmd1.o cmd2.o cmd3.o cmd4.o cmd5.o cmd6.o cmd7.o \
+ store.o birth.o loadsave.o notes.o squeltch.o \
+ wizard1.o wizard2.o levels.o ghost.o plots.o \
+ generate.o gen_maze.o gen_evol.o dungeon.o init1.o init2.o \
+ bldg.o wild.o powers.o help.o
+
+.c.o:
+ $(NICE) $(CC) $(CFLAGS) -c $*.c
+
+all .PHONY: angband.exe aclient.exe
+ +@echo.
+ +@echo Now type
+ +@echo.
+ +@echo '$(MAKECMD) $(MFLAGS) $(MAKEFILE) install'
+ +@echo.
+ +@echo to install Angband in the parent directory, and/or
+ +@echo.
+ +@echo '$(MAKECMD) $(MFLAGS) $(MAKEFILE) clean'
+ +@echo.
+ +@echo to remove a bunch of temporary files used during compilation!
+ +@echo You may want to remove the src subdirectory, now that you have
+ +@echo working executables.
+ +@echo.
+
+EXPFILES = angband.exe;aclient.exe;patches.txt;readme;startwnd.cmd
+
+..\exp\$(EXPORT) .PHONY .IGNORE: install patches
+# Needs 4OS2!
+ +@ md ..\exp >& nul ^ \
+ md ..\exp\tmpdir >& nul ^ \
+ cd ..\exp\tmpdir ^ \
+ copy ...\$(EXPFILES) > nul ^ \
+ md lib ^ \
+ copy ...\lib\ lib\ /s >& nul ^ \
+ del lib\save\player >& nul ^ \
+ zip -m -r $(EXPORT) * > nul ^ \
+ move $(EXPORT) .. ^ \
+ cd .. ^ \
+ del tmpdir /xsqy >& nul
+
+PATCHFILES = *.c *.h makefile* ..\lib\user\pref-emx.prf
+
+# Needs 4OS2!
+..\patches.txt .PHONY .IGNORE:
+ +@ echo These are the changes to the original source > ..\patches.txt ^ \
+ echo archive ($(VERSION)). You don't need to apply them >> ..\patches.txt ^ \
+ echo if you can get the latest archive, which will >> ..\patches.txt ^ \
+ echo have them applied already. >> ..\patches.txt ^ \
+ echo. >> ..\patches.txt ^ \
+ except (*~) for %a in ($(PATCHFILES)) \
+ do (diff -c ..\old\src\%a %a >> ..\patches.txt)
+
+# Needs 4OS2!
+..\exp\patches.uue: ..\patches.txt
+ +@ md ..\exp >& nul ^ \
+ cd ..\exp ^ \
+ copy ..\patches.txt patches-$(VERSION).os2 ^ \
+ gzip -f patches-$(VERSION).os2 ^ \
+ uuencode patches-$(VERSION).os2.gz >& nul ^ \
+ del patches-$(VERSION).os2.gz ^ \
+ move patches-$(VERSION).os2.gz.uue patches.uue
+
+FILES = main-emx.c makefile.emx ..\lib\user\pref-emx.prf
+FILESP = main-emx.c makefile.emx pref-emx.prf
+
+# Needs 4OS2!
+..\exp\files.uue: $(FILES)
+ +@ md ..\exp >& nul ^ \
+ cd ..\exp ^ \
+ for %a in ($(FILES)) copy ..\src\%a > nul ^ \
+ tar -cvf files.tar $(FILESP) ^ \
+ del $(FILESP) ^ \
+ gzip files.tar ^ \
+ uuencode files.tar.gz ^ \
+ del files.tar.gz >& nul ^ \
+ move files.tar.gz.uue files.uue
+
+depends .IGNORE: $(OBJS)
+ + echo. > depends
+ + for %a in (*.d) type %a >> depends
+
+..\angband.exe: angband.exe
+ + copy angband.exe ..
+ emxbind -s ..\angband.exe
+
+..\aclient.exe: aclient.exe
+ + copy aclient.exe ..
+ emxbind -s ..\aclient.exe
+
+EC=+@ echo
+ECF=>> ..\startwnd.cmd
+
+..\startwnd.cmd:
+ $(EC) /* rexx, sir */ > ..\startwnd.cmd
+ $(EC). $(ECF)
+ $(EC) call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' $(ECF)
+ $(EC) call SysLoadFuncs $(ECF)
+ $(EC). $(ECF)
+ $(EC) /* This file starts up Angband and up to seven other views. The */ $(ECF)
+ $(EC) /* optional number behind the name sets the number of lines for */ $(ECF)
+ $(EC) /* that screen. Choose contents for each via the game options. */ $(ECF)
+ $(EC). $(ECF)
+ $(EC) say 'starting up terminals...' $(ECF)
+ $(EC). $(ECF)
+ $(EC) '@start /b /win /n aclient Mirror 23' $(ECF)
+ $(EC) '@start /b /win /n aclient Recall 10' $(ECF)
+ $(EC) /* $(ECF)
+ $(EC) '@start /b /win /n aclient Choice' $(ECF)
+ $(EC) '@start /b /win /n aclient Term-4' $(ECF)
+ $(EC) '@start /b /win /n aclient Term-5' $(ECF)
+ $(EC) '@start /b /win /n aclient Term-6' $(ECF)
+ $(EC) '@start /b /win /n aclient Term-7' $(ECF)
+ $(EC) */ $(ECF)
+ $(EC) call SysSleep(2) $(ECF)
+ $(EC) '@angband 'ARG(1) $(ECF)
+ $(EC) exit $(ECF)
+
+angband.exe: angband.a main.o main-emx.o main-epm.o
+ $(CC) -o angband.exe main.o main-emx.o angband.a $(LFLAGS)
+
+angband.a: $(OBJS)
+ $(AR) r angband.a $(OBJS)
+
+aclient.exe: main-emx.c
+ $(NICE) $(CC) $(CFLAGS) -Wall -D__EMX__CLIENT__ -o aclient.exe main-emx.c -lvideo
+
+main-emx.o: main-emx.c
+ $(NICE) $(CC) $(CFLAGS) -Wall -c main-emx.c -o main-emx.o
+
+main-epm.o: main-emx.c
+ $(NICE) $(CC) $(CFLAGS) -Wall -DEMXPM -c main-emx.c -o main-epm.o
+
+# Forgive me :)
+":-)":
+ +@echo.
+
+.INCLUDE .IGNORE: depends
+