# ----------------------------------------------------------------------------
# Hyper Operating System V4 Advance
#  makefile for sh2-sample
#
# Copyright (C) 1998-2007 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}
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/sh/sh2a-fpu/shc


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


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


ifeq ($(MEMMAP),rom)
# %jp{ROMĂꍇ}%en{internal ROM}
TARGET := $(TARGET)_rom
SECTION_VECT ?= 000000000
SECTION_RO   ?= 000000800
SECTION_RW   ?= 01c000000
else
# %jp{RAMs}%en{external RAM}
TARGET := $(TARGET)
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 += ./vcttbl.src
ASRCS += ./startup.src


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


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




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

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

# %jp{N[}%en{clean}
.PHONY : clean
clean: makeexe_clean
	rm -f $(TARGET_EXE) $(TARGET_EXE) $(OBJS) ../kernel_cfg.c ../kernel_id.h

# %jp{ˑ֌WXV}%en{depend}
.PHONY : depend
depend: makeexe_depend

# %jp{\[XꊇRs[}%en{source files copy}
.PHONY : srccpy
srccpy: makeexe_srccpy

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


# %jp{WCu}%en{std library}
$(STD_LIBS):
	lbgsh -OUTPut=$(STD_LIBS) -CPu=sh2 -REent


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


# %jp{st@CpݒǍ}%en{setting for execute file}
include $(KERNEL_MAKINC_DIR)/makexe_r.inc

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



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

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


# end of file

