#-----------------------------------------------------------------------------
#
#   makefile
#
#-----------------------------------------------------------------------------
# Set assembler options
#-----------------------------------------------------------------------------
MASMOPT = /c /Zm /W2 /DINCLUDEDIR=$(INCLUDE_DIR) /DLIBDIR=$(LIB_DIR) /Fo $(@R).obj
MASMLST = /DRRC /Fl$(@R).lst
LINKOPT = /M /NON


#-----------------------------------------------------------------------------
# Include directories
#-----------------------------------------------------------------------------
SRC_DIR = .
INCLUDE_DIR = .
LIB_DIR = .


#-----------------------------------------------------------------------------
# Link object files
#-----------------------------------------------------------------------------
LNK_OBJ = @lnk

#-----------------------------------------------------------------------------
# Dependancies & inference rules
#-----------------------------------------------------------------------------
.SUFFIXES :
.SUFFIXES :	.exe .obj .asm

.asm.obj:
		ml $(MASMOPT) $(MASMLST) $(@R).asm
		ml $(MASMOPT) $(@R).asm

#-----------------------------------------------------------------------------
# List of files to make
#-----------------------------------------------------------------------------
all:		intel.exe


$(SRC_DIR)\intel.exe:		$(SRC_DIR)\intel.obj	\
				$(SRC_DIR)\cpuid.obj	\
				$(SRC_DIR)\shutdown.obj \
				$(SRC_DIR)\kbc.obj	\
				$(LIB_DIR)\miscutil.lib \
				$(LIB_DIR)\videofns.lib
		link $(LINKOPT) intel cpuid shutdown kbc;

$(SRC_DIR)\intel.obj:		$(LIB_DIR)\miscutil.lib \
				$(LIB_DIR)\videofns.lib \
				$(SRC_DIR)\intel.asm

$(SRC_DIR)\cpuid.obj:		$(SRC_DIR)\cpuid.asm

$(SRC_DIR)\shutdown.obj:	$(INCLUDE_DIR)\equates.inc	\
				$(INCLUDE_DIR)\macros.inc	\
				$(INCLUDE_DIR)\struc.inc	\
				$(SRC_DIR)\shutdown.asm

$(SRC_DIR)\kbc.obj:		$(INCLUDE_DIR)\equates.inc	\
				$(INCLUDE_DIR)\macros.inc	\
				$(INCLUDE_DIR)\struc.inc	\
				$(SRC_DIR)\kbc.asm


#.obj.exe:
#		 link $(LINKOPT) $(LNK_OBJ);


clean:
		if exist *.obj del *.obj
		if exist *.map del *.map
		if exist *.exe del *.exe
		if exist *.lst del *.lst
