📄 makefile.h8s
字号:
#
# TOPPERS/JSP Kernel
# Toyohashi Open Platform for Embedded Real-Time Systems/
# Just Standard Profile Kernel
#
# Copyright (C) 2000-2002 by Embedded and Real-Time Systems Laboratory
# Toyohashi Univ. of Technology, JAPAN
# Copyright (C) 2001,2002 by Dep. of Computer Science and Engineering
# Tomakomai National College of Technology, JAPAN
# Copyright (C) 2001,2002 by Industrial Technology Institute,
# Miyagi Prefectural Government, JAPAN
#
# 忋婰挊嶌尃幰偼丆埲壓偺 (1)乣(4) 偺忦審偐丆Free Software Foundation
# 偵傛偭偰岞昞偝傟偰偄傞 GNU General Public License 偺 Version 2 偵婰
# 弎偝傟偰偄傞忦審傪枮偨偡応崌偵尷傝丆杮僜僼僩僂僃傾乮杮僜僼僩僂僃傾
# 傪夵曄偟偨傕偺傪娷傓丏埲壓摨偠乯傪巊梡丒暋惢丒夵曄丒嵞攝晍乮埲壓丆
# 棙梡偲屇傇乯偡傞偙偲傪柍彏偱嫋戻偡傞丏
# (1) 杮僜僼僩僂僃傾傪僜乕僗僐乕僪偺宍偱棙梡偡傞応崌偵偼丆忋婰偺挊嶌
# 尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕偑丆偦偺傑傑偺宍偱僜乕
# 僗僐乕僪拞偵娷傑傟偰偄傞偙偲丏
# (2) 杮僜僼僩僂僃傾傪丆儔僀僽儔儕宍幃側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
# 梡偱偒傞宍偱嵞攝晍偡傞応崌偵偼丆嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡
# 幰儅僯儏傾儖側偳乯偵丆忋婰偺挊嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰
# 偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
# (3) 杮僜僼僩僂僃傾傪丆婡婍偵慻傒崬傓側偳丆懠偺僜僼僩僂僃傾奐敪偵巊
# 梡偱偒側偄宍偱嵞攝晍偡傞応崌偵偼丆師偺偄偢傟偐偺忦審傪枮偨偡偙
# 偲丏
# (a) 嵞攝晍偵敽偆僪僉儏儊儞僩乮棙梡幰儅僯儏傾儖側偳乯偵丆忋婰偺挊
# 嶌尃昞帵丆偙偺棙梡忦審偍傛傃壓婰偺柍曐徹婯掕傪宖嵹偡傞偙偲丏
# (b) 嵞攝晍偺宍懺傪丆暿偵掕傔傞曽朄偵傛偭偰丆TOPPERS僾儘僕僃僋僩偵
# 曬崘偡傞偙偲丏
# (4) 杮僜僼僩僂僃傾偺棙梡偵傛傝捈愙揑傑偨偼娫愙揑偵惗偠傞偄偐側傞懝
# 奞偐傜傕丆忋婰挊嶌尃幰偍傛傃TOPPERS僾儘僕僃僋僩傪柶愑偡傞偙偲丏
#
# 杮僜僼僩僂僃傾偼丆柍曐徹偱採嫙偝傟偰偄傞傕偺偱偁傞丏忋婰挊嶌尃幰偍
# 傛傃TOPPERS僾儘僕僃僋僩偼丆杮僜僼僩僂僃傾偵娭偟偰丆偦偺揔梡壜擻惈傕
# 娷傔偰丆偄偐側傞曐徹傕峴傢側偄丏傑偨丆杮僜僼僩僂僃傾偺棙梡偵傛傝捈
# 愙揑傑偨偼娫愙揑偵惗偠偨偄偐側傞懝奞偵娭偟偰傕丆偦偺愑擟傪晧傢側偄丏
#
# @(#) $Id: Makefile.h8s,v 1.4 2003/06/04 01:47:59 hiro Exp $
#
#
# 僞乕僎僢僩柤偺掕媊
#
CPU = @(CPU)
SYS = @(SYS)
#
# 僜乕僗僼傽僀儖偺僨傿儗僋僩儕偺掕媊
#
JSPDIR = @(JSPDIR)
#
# H8S埶懚晹偺僨傿儗僋僩儕偺掕媊
#
H8SDIR = $(JSPDIR)/config/$(CPU)
#
# Cygwin忋偱僐儞僷僀儖偡傞偐偳偆偐偺愝掕
#
#CYGWIN = true
#
# 幚峴娐嫬偺掕媊乮暋悢偺幚峴娐嫬傪摨帪偵慖戰偟偰偼側傜側偄乯
# 乮偳傟偵傕奩摉偟側偄応崌偼丆偡傋偰僐儊儞僩傾僂僩偡傞乯
#
#GDB_STUB = true
#PARTNER_J = true
#
# 僞乕僎僢僩埶懚偺掕媊偺僀儞僋儖乕僪
#
-include $(H8SDIR)/Makefile.config
ifdef SYS
-include $(H8SDIR)/$(SYS)/Makefile.config
endif
#
# 嫟捠僐儞僷僀儖僆僾僔儑儞偺掕媊
#
INCLUDES = .,$(JSPDIR)/include,$(H8SDIR),$(H8SDIR)/$(SYS)
CDEFS = $(CPU_CDEFS) $(SYS_CDEFS) $(ENV_CDEFS)
CFLAGS = $(CPU_CFLAGS) $(SYS_CFLAGS) $(CDEFS)
ASMDEFS = $(CPU_ASMDEFS) $(SYS_ASMDEFS)
ASMFLAGS =$(CPU_ASMFLAGS) $(SYS_ASMFLAGS)
LDFLAGS = $(CPU_LDFLAGS) $(SYS_LDFLAGS)
LIBS = $(CPU_LIBS) $(SYS_LIBS)
#
# 傾僾儕働乕僔儑儞僾儘僌儔儉偵娭偡傞掕媊
#
UNAME = sample1
UTASK_CFG = $(UNAME).cfg
UTASK_DIR = $(JSPDIR)/libjsp
UTASK_ASMOBJS =
UTASK_COBJS = $(UNAME).obj
UTASK_CFLAGS =
UTASK_CFLAGS_INC =
UTASK_ASMFLAGS =
UTASK_ASMFLAGS_INC =
UTASK_LIBS =
#
# 僔僗僥儉僒乕價僗偵娭偡傞掕媊
#
STASK_DIR = $(JSPDIR)/systask:$(JSPDIR)/libjsp
STASK_ASMOBJS =
STASK_COBJS = timer.obj serial.obj logtask.obj \
log_output.o vasyslog.obj jsp_perror.obj strerror.obj
STASK_CFLAGS_INC =,$(JSPDIR)/systask
STASK_CFLAGS =
STASK_ASMFLAGS_INC =,$(JSPDIR)/systask
STASK_ASMFLAGS =
STASK_LIBS =
#
# 僇乕僱儖偵娭偡傞掕媊
#
# KERNEL_ASMOBJS: 僇乕僱儖儔僀僽儔儕偵娷傔傞丆僜乕僗偑傾僙儞僽儕尵岅偺
# 僆僽僕僃僋僩僼傽僀儖丏
# KERNEL_COBJS: 僇乕僱儖偺儔僀僽儔儕偵娷傔傞丆僜乕僗偑C尵岅偺僆僽僕僃僋
# 僩僼傽僀儖丏
# KERNEL_ADD_COBJS: 僇乕僱儖偺儔僀僽儔儕偵娷傔偢丆儘乕僪儌僕儏乕儖偵捈
# 愙儕儞僋偡傞僜乕僗偑C尵岅偺僆僽僕僃僋僩僼傽僀儖丏
# KERNEL_AUX_COBJS: 儘乕僪儌僕儏乕儖偵娷傔側偄偑丆僇乕僱儖偺僜乕僗僼傽
# 僀儖偲摨偠僆僾僔儑儞傪揔梡偟偰僐儞僷僀儖偡傋偒僼傽
# 僀儖丏
#
KERNEL = $(JSPDIR)/kernel
KERNEL_DIR = $(H8SDIR):$(H8SDIR)/$(SYS):$(KERNEL)
KERNEL_ASMOBJS = cpu_support.obj sys_support.obj
KERNEL_COBJS = startup.obj cpu_config.obj sys_config.obj \
task.obj wait.obj time_event.obj syslog.obj \
task_manage.obj task_sync.obj task_except.obj \
semaphore.obj eventflag.obj dataqueue.obj mailbox.obj mempfix.obj \
time_manage.obj cyclic.obj sys_manage.obj interrupt.obj
# exception.obj
KERNEL_ADD_COBJS = banner.obj kernel_cfg.obj
KERNEL_AUX_COBJS = makeoffset.obj kernel_chk.obj
KERNEL_CFLAGS_INC =,$(KERNEL)
KERNEL_CFLAGS =
KERNEL_ASMFLAGS_INC =,$(KERNEL)
KERNEL_ASMFLAGS =
INT_HDLER_OBJ = int_hdler.obj
#
# 僗僞乕僩傾僢僾儌僕儏乕儖偵娭偡傞掕媊
#
ifndef START_OBJS
START_OBJS = start.obj
endif
#
# 僆僽僕僃僋僩僼傽僀儖柤偺掕媊乮Cygwin 偱偼 .exe 偑晅偔乯
#
#ifneq ($(CYGWIN),true)
# JSPOBJ = jsp
#else
# JSPOBJ = jsp.exe
#endif
JSPOBJ = jsp.abs
#
# 僞乕僎僢僩僼傽僀儖乮暋悢傪摨帪偵慖戰偟偰偼側傜側偄乯
#
all: $(JSPOBJ)
#all: jsp.out
#all: jsp.bin
#all: jsp.src
#
# 僇乕僱儖偺僐儞僼傿僊儏儗乕僔儑儞僼傽僀儖偺惗惉(廋惓)
#
kernel_cfg.c kernel_id.h kernel_chk.c : $(UTASK_CFG)
echo -i=$(INCLUDES) $(CDEFS) $(UTASK_CFG) > subcommand.sub
$(CPP)=kernel_cfg.tmp -euc -sub=subcommand.sub
grep -v "#line" kernel_cfg.tmp | $(JSPDIR)/cfg/cfg -s -c -z
#
#丂妱崬傒偺弌擖傝岥張棟偺僼傽僀儖惗惉(捛壛)
#
int_hdler.obj : kernel_cfg.c
echo rule int_hdler.obj
grep ^CFG_INTHDR_ENTRY kernel_cfg.c | \
perl $(H8SDIR)/gen_int.pl > int_hdler.src
echo $(ASMFLAGS) $(KERNEL_ASMFLAGS) | perl $(H8SDIR)/make_sub.pl > tmp.sub
echo -i=$(INCLUDES)$(KERNEL_ASMFLAGS_INC) >> tmp.sub
perl -i.bak $(H8SDIR)/make_asm_path.pl tmp.sub
echo $(AS) int_hdler.src -O=$@ -sub=tmp.sub > tmp.sh
perl -i.bak $(H8SDIR)/make_asm_path.pl tmp.sh
sh tmp.sh
##### 埲壓偼曇廤偟側偄偙偲 #####
#
# 娐嫬偵埶懚偡傞僐儞僷僀儖僆僾僔儑儞偺掕媊
#
#ifeq ($(GDB_STUB),true)
# ENV_CDEFS = -DGDB_STUB
#else
#ifeq ($(PARTNER_J),true)
# ENV_CDEFS = -DPARTNER_J
#endif
#endif
#
#
# jsp.chk 偺惗惉婯懃乮惷揑API偺僷儔儊乕僞僠僃僢僋乯
#
#jsp.chk: kernel_chk.src $(JSPDIR)/utils/gencheck
# $(JSPDIR)/utils/gencheck kernel_chk.src > jsp.chk
#
#
# offset.h 偺惗惉婯懃乮峔憿懱撪偺僆僼僙僢僩抣偺嶼弌乯
#
offset.h: makeoffset.c $(H8SDIR)/offset_of.pl $(H8SDIR)/bit_of.pl
echo $(CFLAGS) $(KERNEL_CFLAGS) | perl $(H8SDIR)/make_sub.pl > tmp.sub
echo -i=$(INCLUDES)$(KERNEL_CFLAGS_INC) >> tmp.sub
$(CC) -c=asmcode -sub=tmp.sub $<
perl $(H8SDIR)/offset_of.pl makeoffset.src > offset.h
perl $(H8SDIR)/bit_of.pl makeoffset.src >> offset.h
#
# 僜乕僗僼傽僀儖偺偁傞僨傿儗僋僩儕偵娭偡傞掕媊
#
vpath %.c $(KERNEL_DIR):$(STASK_DIR):$(UTASK_DIR)
vpath %.src $(KERNEL_DIR):$(STASK_DIR):$(UTASK_DIR)
#
# 僐儞僷僀儖偺偨傔偺曄悢偺掕媊
#
KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS)
STASK_OBJS = $(STASK_ASMOBJS) $(STASK_COBJS)
UTASK_OBJS = $(UTASK_ASMOBJS) $(UTASK_COBJS)
ALL_OBJS = $(START_OBJS) $(KERNEL_ADD_COBJS) $(STASK_OBJS) $(UTASK_OBJS) $(INT_HDLER_OBJ)
ALL_LIBS = $(STASK_LIBS) $(UTASK_LIBS) libkernel.lib $(LIBS)
ifdef TEXT_START_ADDRESS
LDFLAGS := $(LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
endif
ifdef DATA_START_ADDRESS
LDFLAGS := $(LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
endif
ifdef LDSCRIPT
LDFLAGS := $(LDFLAGS) -T $(JSPDIR)/config/$(LDSCRIPT)
endif
#
# 摿暿側埶懚娭學偺掕媊
#
banner.obj: Makefile $(filter-out banner.obj,$(ALL_OBJS)) libkernel.lib
#
# 僇乕僱儖儔僀僽儔儕僼傽僀儖偺惗惉
#
libkernel.lib: $(KERNEL_LIB_OBJS)
$(REMOVE) libkernel.lib
echo create libkernel.lib > lib.sub
echo add $(KERNEL_LIB_OBJS) >> lib.sub
echo exit >> lib.sub
$(AR) -sub=lib.sub
#
# 慡懱偺儕儞僋
#
$(JSPOBJ): $(ALL_OBJS) libkernel.lib
echo INPUT $(ALL_OBJS) > link.sub
echo LIBRARY $(ALL_LIBS) >> link.sub
cat $(JSPDIR)/config/$(LDSCRIPT) >> link.sub
$(LD) -EXCLUDE -output=jsp.abs -sub=link.sub
#
# PARTNER-J 偺偨傔偺僼傽僀儖
#
jsp.out: $(JSPOBJ)
cp $(JSPOBJ) jsp.out
#
# 僶僀僫儕僼傽僀儖偺惗惉
#
jsp.bin: $(JSPOBJ)
$(OBJCOPY) -O binary -S $(JSPOBJ) jsp.bin
#
# S儗僐乕僪僼傽僀儖偺惗惉
#
jsp.src: $(JSPOBJ)
$(OBJCOPY) -O srec -S $(JSPOBJ) jsp.src
#
# 僐儞僷僀儖寢壥偺徚嫀
#
clean:
$(REMOVE) \#* *~ *.o *.obj *.OBJ *.tmp *.lst *.sub err.txt *.bak
$(REMOVE) makeoffset.src offset.h kernel_cfg.c kernel_chk.c kernel_chk.src kernel_id.h
$(REMOVE) libkernel.lib jsp jsp.chk jsp.exe jsp.bin jsp.out jsp.src jsp.abs
$(REMOVE) int_hdler.src tmp.sh libkernel.LCT makeoffset.p
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -