# ----------------------------------------------------------------------------
# Hyper Operating System V4 Advance
#
# Copyright (C) 1998-2006 by Project HOS
# http://sourceforge.jp/projects/hos/
# ----------------------------------------------------------------------------

# %jp{^[Qbg}
TARGET ?= sample


# %jp{c[`}
GCC_ARCH   ?= h8300-elf-
CMD_CC     ?= $(GCC_ARCH)gcc
CMD_ASM    ?= $(GCC_ARCH)gcc
CMD_LINK   ?= $(GCC_ARCH)gcc
CMD_OBJCNV ?= $(GCC_ARCH)objcopy


# %jp{fBNg`}
OS_DIR            = ../../../..
KERNEL_DIR        = $(OS_DIR)/kernel
KERNEL_CFGRTR_DIR = $(OS_DIR)/cfgrtr/build/gcc
KERNEL_MAKINC_DIR = $(KERNEL_DIR)/build/common/gmake
KERNEL_BUILD_DIR  = $(KERNEL_DIR)/build/h8/h8300ha/gcc
OBJS_DIR          = objs_$(TARGET)

# %jp{ʒ`Ǎ}
include $(KERNEL_MAKINC_DIR)/common.inc


ifeq ($(MEMMAP),ram)
# %jp{RAMs(j^vOpz)}
TARGET := $(TARGET)_ram
LINKER_SCRIPT ?= link_ram.lds
C_DEFS        += _RAM
else
# %jp{ROMĂꍇ}
LINKER_SCRIPT ?= link_rom.lds
C_DEFS        += 
endif


# %jp{tOݒ}
CFLAGS  = -mh
AFLAGS  = -mh
LNFLAGS = -mh -nostartfiles -T$(LINKER_SCRIPT) -Wl,-Map,$(TARGET).map


# %jp{RtBM[^`}
KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-h8300ha

# %jp{o̓t@C}
TARGET_EXE = $(TARGET).$(EXT_EXE)
TARGET_MOT = $(TARGET).$(EXT_MOT)


# %jp{gccp̐ݒǍ}
include $(KERNEL_MAKINC_DIR)/gcc_d.inc


# --------------------------------------
#  %jp{t@Cݒ}
# --------------------------------------

# %jp{\[XfBNg}
SRC_DIRS += . ..

# %jp{AZut@C̒ǉ}
ASRCS += ./vector.S			\
         ./crt0.S

# %jp{Ct@C̒ǉ}
CSRCS += ../kernel_cfg.c	\
         ../main.c			\
         ../sample.c		\
         ../ostimer.c		\
         ../sci1.c

# %jp{Cu̒ǉ}
LIBS  +=


# --------------------------------------
#  %jp{[}
# --------------------------------------

.PHONY : all
all: makeexe_all $(TARGET_EXE) $(TARGET_MOT)


.PHONY : clean
clean: makeexe_clean
	rm -f $(TARGET_EXE) $(TARGET_MOT) $(OBJS) ../kernel_cfg.c ../kernel_id.h


.PHONY : mostlyclean
mostlyclean: clean clean_kernel


../kernel_cfg.c ../kernel_id.h: ../system.cfg
	cpp -E ../system.cfg ../system.i
	$(KERNEL_CFGRTR) ../system.i -c ../kernel_cfg.c -i ../kernel_id.h


# %jp{st@CpݒǍ}
include $(KERNEL_MAKINC_DIR)/makeexe.inc

# %jp{gccp̃[`Ǎ}
include $(KERNEL_MAKINC_DIR)/gcc_r.inc


# --------------------------------------
#  %jp{ˑ֌W}
# --------------------------------------

$(OBJS_DIR)/sample.$(EXT_OBJ): ../sample.c ../kernel_id.h


# end of file

