# File: Makefile.dos

#
# Makefile support for "main-dos.c" and "main-ibm.c"
#
# See "main-dos.c" and "main-ibm.c" for more information.
#


#
# Basic definitions
#

LUAOBJS = \
  lua/lapi.o lua/ldebug.o lua/lmem.o lua/lstrlib.o lua/lvm.o \
  lua/lauxlib.o lua/ldo.o lua/lobject.o lua/ltable.o lua/lzio.o \
  lua/lbaselib.o lua/lfunc.o lua/lparser.o lua/lcode.o lua/lgc.o \
  lua/lopcodes.o lua/lstate.o lua/ltm.o  lua/ldblib.o lua/llex.o \
  lua/lstring.o lua/ldump.o lua/lundump.o lua/ltablib.o \
  lua/tolua_map.o lua/tolua_is.o lua/tolua_to.o lua/tolua_push.o \
  lua/tolua_event.o

TOLUAOBJS = \
  lua/tolua.o lua/toluabind.o lua/liolib.o \
  $(LUAOBJS)

# Objects
OBJS = \
  main.o \
  main-dos.o \
  main-ibm.o \
  birth.o \
  cave.o \
  cmd1.o \
  cmd2.o \
  cmd3.o \
  cmd4.o \
  cmd5.o \
  cmd6.o \
  dungeon.o \
  files.o \
  generate.o \
  init1.o \
  init2.o \
  load.o \
  melee1.o \
  melee2.o \
  monster1.o \
  monster2.o \
  obj-info.o \
  object1.o \
  object2.o \
  randart.o \
  save.o \
  spells1.o \
  spells2.o \
  store.o \
  tables.o \
  util.o \
  variable.o \
  wizard1.o \
  wizard2.o \
  xtra1.o \
  xtra2.o \
  z-term.o \
  z-rand.o \
  z-form.o \
  z-virt.o \
  z-util.o \
  script.o \
  l-monst.o l-object.o l-player.o l-random.o l-ui.o l-misc.o l-spell.o \
  use-obj.o \
  x-spell.o \
  $(LUAOBJS)

# Compiler
CC = gcc

# Compiler flags
CFLAGS = -Wall -O2 -fno-strength-reduce -s -DUSE_DOS -DUSE_IBM \
-DUSE_BACKGROUND

# Libraries
LIBS = -lpc -lalleg


#
# Targets
#

default: angband.exe

install: angband.exe
	copy angband.exe ..

all: angband.exe
	@echo All done.  Use 'make install' to install.


#
# Link executables
#

angband.exe: $(OBJS)
	$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)

lua\tolua: $(TOLUAOBJS)
	$(CC) -o lua\tolua $(TOLUAOBJS) $(INCDIRS) $(LIBDIRS) $(LUALIBS)


#
# Compile source files
#

.c.o:
	$(CC) $(CFLAGS) -c -o $@ $<


#
# Build wrappers
#

l-monst.c: lua\tolua l-monst.pkg
	lua\tolua -n monster -o l-monst.c l-monst.pkg

l-object.c: lua\tolua l-object.pkg
	lua\tolua -n object -o l-object.c l-object.pkg

l-player.c: lua\tolua l-player.pkg
	lua\tolua -n player -o l-player.c l-player.pkg

l-random.c: lua\tolua l-random.pkg
	lua\tolua -n random -o l-random.c l-random.pkg

l-ui.c: lua\tolua l-ui.pkg
	lua\tolua -n ui -o l-ui.c l-ui.pkg

l-misc.c: lua\tolua l-misc.pkg
	lua\tolua -n misc -o l-misc.c l-misc.pkg

l-spell.c: lua\tolua l-spell.pkg
	lua\tolua -n spell -o l-spell.c l-spell.pkg

#
# Clean up
#

clean:
	del *.o
	del lua\*.o

cleanall: clean
	del *.exe
	del lua\*.exe
