diff options
Diffstat (limited to 'src/makefile.emx')
-rw-r--r-- | src/makefile.emx | 205 |
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 + |