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



# --------------------------------------
#  %jp{eݒ}{setting}
# --------------------------------------

# %jp{^[Qbg}%en{target name}
TARGET = sample


# %jp{A[LeN``}%en{architecture}
ARCH_NAME = sh2a-fpu
ARCH_CC   = shc


# %jp{fBNg`}%en{directories}
TOP_DIR           = ..\..\..\..
KERNEL_DIR        = $(TOP_DIR)\kernel
KERNEL_CFGRTR_DIR = $(TOP_DIR)\cfgrtr\build\msc
KERNEL_MAKINC_DIR = $(KERNEL_DIR)\build\common\nmake
KERNEL_BUILD_DIR  = $(KERNEL_DIR)\build\sh\sh2a-fpu\shc


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


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


# %jp{}bv}
!if "$(MEMMAP)" == "rom"
# %jp{ROMs}
TARGET       = $(TARGET)_rom
SECTION_VECT = 000000000
SECTION_RO   = 000000800
SECTION_RW   = 01c000000
!else
# %jp{RAMs}
SECTION_VECT = 01c000000
SECTION_RO   = 01c000800
SECTION_RW   = 01c028000
!endif


# %jp{pXݒ}%en{add source directories}
INC_DIRS = . ..
SRC_DIRS = . ..


# %jp{IvVtO}%en{option flags}
AFLAGS   = -CPu=sh2afpu
CFLAGS   = -CPu=sh2afpu
LNFLAGS  = 


# %jp{RpCˑ̐ݒǍ}%en{compiler dependent definitions}
!include $(KERNEL_MAKINC_DIR)\$(ARCH_CC)_d.inc

# %jp{st@CpݒǍ}%en{definitions for exection file}
!include $(KERNEL_MAKINC_DIR)\makexe_d.inc


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

# %jp{CCu̎w}%en{std library}
STD_LIBS = stdlib.lib



# --------------------------------------
#  %jp{\[Xt@C}%en{source files}
# --------------------------------------

# %jp{AZut@C̒ǉ}%en{assembry sources}
ASRCS = $(ASRCS) .\vcttbl.src
ASRCS = $(ASRCS) .\startup.src

# %jp{Ct@C̒ǉ}%en{C sources}
CSRCS = $(CSRCS) .\dbsct.c
CSRCS = $(CSRCS) ..\kernel_cfg.c
CSRCS = $(CSRCS) ..\main.c
CSRCS = $(CSRCS) ..\sample.c
CSRCS = $(CSRCS) ..\ostimer.c
CSRCS = $(CSRCS) ..\sci1.c


# %jp{IuWFNgt@C̒ǉ}%en{object files}
OBJS = $(OBJS) $(OBJS_DIR)\vcttbl.obj
OBJS = $(OBJS) $(OBJS_DIR)\startup.obj
OBJS = $(OBJS) $(OBJS_DIR)\kernel_cfg.obj
OBJS = $(OBJS) $(OBJS_DIR)\main.obj
OBJS = $(OBJS) $(OBJS_DIR)\sample.obj
OBJS = $(OBJS) $(OBJS_DIR)\ostimer.obj
OBJS = $(OBJS) $(OBJS_DIR)\sci1.obj


# %jp{Cu̒ǉ}
LIBS = $(LIBS) $(STD_LIBS)




# --------------------------------------
#  %jp{[`}%en{rules}
# --------------------------------------

# %jp{ALL}%en{all}
all: makeexe_all srcobjcp $(TARGET_EXE) $(TARGET_MOT)

# %jp{N[}%en{clean}
clean: makeexe_clean
	$(CMD_RM) $(TARGET_EXE) $(OBJS) ..\kernel_cfg.c ..\kernel_id.h

# %jp{J[lƃN[}%en{mostlyclean}
mostlyclean: clean kernel_clean


# %jp{RtBM[^s}%en{configurator}
..\kernel_cfg.c ..\kernel_id.h: ..\system.cfg
	cl /E ..\system.cfg > ..\system.i
	$(KERNEL_CFGRTR) ..\system.i -c ..\kernel_cfg.c -i ..\kernel_id.h
	$(CMD_CP) ..\kernel_cfg.c $(OBJS_DIR)\

$(STD_LIBS):
	lbgsh -OUTPut=$(STD_LIBS) -CP=sh2


# %jp{st@CpݒǍ}%en{rules for exection file}
!include $(KERNEL_MAKINC_DIR)\makexe_r.inc

# %jp{RpCˑ̃[`Ǎ}%en{rules for compiler}
!include $(KERNEL_MAKINC_DIR)\$(ARCH_CC)_r.inc


# %jp{Rs[}%en{copy}
srcobjcp:
	$(CMD_CP) ..\*.c $(OBJS_DIR)
	$(CMD_CP) .\*.src $(OBJS_DIR)



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

$(OBJS_DIR)\vcttbl.obj		:	$(OBJS_DIR)\vcttbl.src
$(OBJS_DIR)\startup.obj		:	$(OBJS_DIR)\startup.src
$(OBJS_DIR)\kernel_cfg.obj	:	$(OBJS_DIR)\kernel_cfg.c ..\kernel_id.h
$(OBJS_DIR)\main.obj		:	$(OBJS_DIR)\main.c       ..\kernel_id.h
$(OBJS_DIR)\sample.obj		:	$(OBJS_DIR)\sample.c     ..\kernel_id.h
$(OBJS_DIR)\ostimer.obj		:	$(OBJS_DIR)\ostimer.c    ..\kernel_id.h
$(OBJS_DIR)\sci1.obj		:	$(OBJS_DIR)\sci1.c       ..\kernel_id.h



# end of file
