#
# Choose-OS loader Makefile
#
# Copyright (c) Tuomo Valkonen 1996-1997.
#

INCLUDES=	$(INC_DIR)/chos.h $(INC_DIR)/mapfile.h $(INC_DIR)/address.h
MODULE_INCLUDES=$(INCLUDES) $(INC_DIR)/module.h

LOADER_DEPS=	loader.S int13.S timer.S misc.S extmem.S background.S \
		screen.S image.S read.S \
		$(INCLUDES)
	  	
BSECT_DEPS=	bsect.S int13.S $(INCLUDES)

L_LINUX_DEPS=	loader-linux.S $(MODULE_INCLUDES) $(INC_DIR)/linux.h

L_BSECT_DEPS=	loader-bsect.S $(MODULE_INCLUDES)

LOADER=		$(DEST_DIR)/chos.loader
BSECT=		$(DEST_DIR)/chos.bsect
L_LINUX=	$(DEST_DIR)/chos.loader-linux
L_BSECT=	$(DEST_DIR)/chos.loader-bsect

LOADER_SKIP=	1153	# in 32 byte blocks (size of the header)
STAGE2_SKIP=	1025	
BSECT_SKIP=	1

TARGETS=$(BSECT) $(LOADER) $(L_LINUX) $(L_BSECT)

all:	$(TARGETS)

# Bootsector
################

$(BSECT): bsect.out
	dd if=$< of=$(BSECT)   bs=32 skip=$(BSECT_SKIP)
	
bsect.s: $(BSECT_DEPS)
	@$(SEPARATOR)
	$(CPP) -D__ASSEMBLY__ $< -o $*.s

# Loader
################

$(LOADER): loader.out
	dd if=$< of=$(LOADER)  bs=32 skip=$(STAGE2_SKIP)
	
loader.s: $(LOADER_DEPS)
	@$(SEPARATOR)
	$(CPP) -D__ASSEMBLY__ $< -o $*.s
	
# Loader-linux
################

$(L_LINUX): loader-linux.out
	dd if=$< of=$(L_LINUX) bs=32 skip=$(LOADER_SKIP)

loader-linux.s: $(L_LINUX_DEPS)
	@$(SEPARATOR)
	$(CPP) -D__ASSEMBLY__ $< -o $*.s

# Loader-bsect
################

$(L_BSECT): loader-bsect.out
	dd if=$< of=$(L_BSECT) bs=32 skip=$(LOADER_SKIP)
	
loader-bsect.s: $(L_BSECT_DEPS)
	@$(SEPARATOR)
	$(CPP) -D__ASSEMBLY__ $< -o $*.s

# Common Rules
################

.o.out:
	$(LD86)  -o $*.out $*.o
.s.o:
	$(AS86)  -o $*.o $*.s

clean:
	rm -f *.s *.o *.out .depend
	
depend:
	$(MAKE_DEPEND) *.S > $(DEPEND)

ifeq ($(DEPEND),$(wildcard $(DEPEND)))
include $(DEPEND)
endif
