⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rules.inc

📁 ertfs文件系统里面既有完整ucos程序
💻 INC
字号:
#include $(targ).inc

#if (TASKINGCOMPILER)
ifeq ($(compiler),TASKINGCOMPILER)

%.$(lib): 
	echo ARCHIVING $@ > con
	ar ru $@ $^

%.$(obj): %.c
	echo COMPILING $< > con
	cxx386 blah
endif
#endif (TASKINGCOMPILER)

#if (CADULCOMPILER)
ifeq ($(compiler),CADULCOMPILER)
%.$(lib):
	echo ARCHIVING $@ > con
	echo $@ $^ > liblist
	lib386 -c @liblist
	rm liblist

%.$(obj): %.c
	echo COMPILING $< > con
	echo &VCXXCMT $(defines:%=&D%) $(includes:%=&I%) $< | amper > temp
	cc386 @temp
	del temp

%.$(exe):
	echo LINKING $@ > con
	echo &OJ $@ $^ | amper > temp
	link386 @temp
	del temp
endif # CADULCOMPILER
#endif (CADULCOMPILER)


#if (HIGHCCOMPILER)
ifeq ($(compiler),HIGHCCOMPILER)
comma:=,
empty:=
space:=$(empty) $(empty)
addlist=$(subst $(space),$(comma)$(space),$(strip $(objects)))


ssiassemble = ml /nologo /D$(os) /DLL386 /D__HIGHC__ $(asmopt) /IC:\LL386\inc /Ih:\ssiapps /Cp /c /WX /Zd $<

rtippm.obj:                        rtippm.asm
	echo ASSEMBLING $< > con
	$(ssiassemble)

rtpxpm.obj:                        rtpxpm.asm
	echo ASSEMBLING $< > con
	$(ssiassemble)

ssi_init.obj:                      ssi_init.asm
	echo ASSEMBLING $< > con
	$(ssiassemble)


%.$(lib):
	echo ARCHIVING $@ > con
	del $@
	djecho -o lib.rsp CREATE $@
	djecho -a lib.rsp ADD $(addlist) TO $@
	XLIB386 @lib.rsp

%.$(obj): %.c
	echo COMPILING $< > con
	djecho -o compile.rsp "" $(ccflags) $(defines:%=-D%) $(includes:%=-I%) -c $< -o $@
	hc386 @compile.rsp


%.$(exe):
	echo LINKING $@ > con
	djecho -o ssi.cmd "" $(objects) ..\\xnet\\ssi_init.obj
	djecho -a ssi.cmd "" ..\\xnet\\rtippm.obj
ifeq ($(os),RTPX) 
	djecho -a ssi.cmd "" ..\\xnet\\rtpxpm.obj
endif
	djecho -a ssi.cmd "" ..\\xnet\\xnet$(dbv).lib 
ifeq ($(os),THREADX) 
	djecho -a ssi.cmd "" \\threadx\\386pm\\metaware\\tx.lib
endif
	djecho -a ssi.cmd ""  \\beacon\\ll386\\lib\\hd0331fd.lib
	djecho -a ssi.cmd ""  hc386.lib
	djecho -a ssi.cmd ""  hcna.lib
	djecho -a ssi.cmd ""  hcsoft.lib
	djecho -a ssi.cmd "" -output($@) 
	djecho -a ssi.cmd "" -flat -omf -nocase -simmap -debug -dosorder
	djecho -a ssi.cmd "" -target(386SX)
	djecho -a ssi.cmd "" -init
	djecho -a ssi.cmd "" -ig
	djecho -a ssi.cmd "" -bootstrap(user_real_init)
	djecho -a ssi.cmd "" -pubmap
	djecho -a ssi.cmd "" -bf(
	djecho -a ssi.cmd "" APP";"
#	djecho -a ssi.cmd "" & IMPORTANT: If the SSI_REAL segment (class REALCODE) is located in the
#	djecho -a ssi.cmd "" & last 64 KB of the address space (i.e., the bootstrap jump is a near
#	djecho -a ssi.cmd "" & jump), the segment *must* have a base that is a multiple of 64 KB.  This
#	djecho -a ssi.cmd "" & is because the CS register isn't changed, so the segment must be
#	djecho -a ssi.cmd "" & located so the linker uses the actual value.
	djecho -a ssi.cmd "" class
	djecho -a ssi.cmd ""   realcode(usereal, er)";"
	djecho -a ssi.cmd "" createseg
#	djecho -a ssi.cmd "" &
	djecho -a ssi.cmd ""   data_start(base = 000100000h),       & start of application data
	djecho -a ssi.cmd ""   code_start(base = 000200000h),       & start of application code
	djecho -a ssi.cmd ""   init_start(base = 000050000h)";"       & start of reset code
	djecho -a ssi.cmd "" & give the target monitor lots of work space
	djecho -a ssi.cmd "" table 
	djecho -a ssi.cmd ""   gdt(limit = 20h),
	djecho -a ssi.cmd ""   idt(limit = 100h)";"
	djecho -a ssi.cmd "" createseg
	djecho -a ssi.cmd ""   ssi_heap\data(limit = 1FFFh)";"
	djecho -a ssi.cmd "" segment
	djecho -a ssi.cmd ""   dgroup(rominit)";"                & copy all segs in DGROUP from ROM to RAM
	djecho -a ssi.cmd "" class
	djecho -a ssi.cmd ""   data(rominit)";"                       & copy all data segs from ROM to RAM
	djecho -a ssi.cmd "" segsym
	djecho -a ssi.cmd ""   segments(ssi_heap),
	djecho -a ssi.cmd ""   segments(dgroup)";"
	djecho -a ssi.cmd "" gate
ifeq ($(os),THREADX) 
	djecho -a ssi.cmd ""   OUT0_GATE(INTERRUPT, ENTRY=_tx_timer_interrupt_entry),
else
	djecho -a ssi.cmd ""   OUT0_GATE(INTERRUPT, ENTRY=rtip_a_isr_0),
endif
	djecho -a ssi.cmd ""   OUT1_GATE(INTERRUPT, ENTRY=rtip_a_isr_1),
	djecho -a ssi.cmd ""   OUT2_GATE(INTERRUPT, ENTRY=rtip_a_isr_2),
	djecho -a ssi.cmd "" -- These are reserved for the TX386 monitor:
	djecho -a ssi.cmd "" -- This assumes COMM 1 is used for monitor and COMM 2 is used by RTIP
	djecho -a ssi.cmd ""   OUT3_GATE(INTERRUPT, ENTRY=rtip_a_isr_3),
	djecho -a ssi.cmd "" --  OUT4_GATE(INTERRUPT, ENTRY=rtip_a_isr_4),
	djecho -a ssi.cmd ""   OUT5_GATE(INTERRUPT, ENTRY=rtip_a_isr_5),
	djecho -a ssi.cmd ""   OUT6_GATE(INTERRUPT, ENTRY=rtip_a_isr_6),
	djecho -a ssi.cmd ""   OUT7_GATE(INTERRUPT, ENTRY=rtip_a_isr_7),
	djecho -a ssi.cmd ""   OUT8_GATE(INTERRUPT, ENTRY=rtip_a_isr_8),
	djecho -a ssi.cmd ""   OUT9_GATE(INTERRUPT, ENTRY=rtip_a_isr_9),
	djecho -a ssi.cmd ""   OUTA_GATE(INTERRUPT, ENTRY=rtip_a_isr_10),
	djecho -a ssi.cmd ""   OUTB_GATE(INTERRUPT, ENTRY=rtip_a_isr_11),
	djecho -a ssi.cmd ""   OUTC_GATE(INTERRUPT, ENTRY=rtip_a_isr_12),
	djecho -a ssi.cmd ""   OUTD_GATE(INTERRUPT, ENTRY=rtip_a_isr_13),
	djecho -a ssi.cmd ""   OUTE_GATE(INTERRUPT, ENTRY=rtip_a_isr_14),
	djecho -a ssi.cmd ""   OUTF_GATE(INTERRUPT, ENTRY=rtip_a_isr_15)";"
	djecho -a ssi.cmd "" table
	djecho -a ssi.cmd ""   idt(entry=(
	djecho -a ssi.cmd "" 	120:OUT0_GATE,
	djecho -a ssi.cmd "" 	121:OUT1_GATE,
	djecho -a ssi.cmd "" 	122:OUT2_GATE,
	djecho -a ssi.cmd "" -- These are reserved for the TX386 monitor:
	djecho -a ssi.cmd "" -- This assumes COMM 1 is used for monitor and COMM 2 is used by RTIP
	djecho -a ssi.cmd "" 	123:OUT3_GATE,
	djecho -a ssi.cmd "" --	124:OUT4_GATE,
	djecho -a ssi.cmd "" 	125:OUT5_GATE,
	djecho -a ssi.cmd "" 	126:OUT6_GATE,
	djecho -a ssi.cmd "" 	127:OUT7_GATE,
	djecho -a ssi.cmd "" 	112:OUT8_GATE,
	djecho -a ssi.cmd "" 	113:OUT9_GATE,
	djecho -a ssi.cmd "" 	114:OUTA_GATE,
	djecho -a ssi.cmd "" 	115:OUTB_GATE,
	djecho -a ssi.cmd "" 	116:OUTC_GATE,
	djecho -a ssi.cmd "" 	117:OUTD_GATE,
	djecho -a ssi.cmd "" 	118:OUTE_GATE,
	djecho -a ssi.cmd "" 	119:OUTF_GATE
	djecho -a ssi.cmd "" 	),rominit),
	djecho -a ssi.cmd ""   gdt(entry=(*segments),
	djecho -a ssi.cmd "" 	rominit)";"                        & copy the GDT from ROM to RAM
	djecho -a ssi.cmd "" & init_task: used for loading the application in the debugger or simulator";"
	djecho -a ssi.cmd "" & this task is not used by the application itself.
	djecho -a ssi.cmd "" task
	djecho -a ssi.cmd ""   init_task(code = ssi_startup, data = dgroup, stacks = (stack),
	djecho -a ssi.cmd "" 		INITIAL, NOT INTENABLED)";"
	djecho -a ssi.cmd "" order 
	djecho -a ssi.cmd ""   segments(data_start),
	djecho -a ssi.cmd ""   tables(idt),
	djecho -a ssi.cmd ""   groups(dgroup),
	djecho -a ssi.cmd ""   tables(gdt),
	djecho -a ssi.cmd ""   segments(ssi_data, ssi_heap)";"
	djecho -a ssi.cmd "" order
	djecho -a ssi.cmd ""   segments(code_start),
	djecho -a ssi.cmd ""   classes(code, rominit),
	djecho -a ssi.cmd ""   tasks(init_task)";"
	djecho -a ssi.cmd "" order
	djecho -a ssi.cmd ""   segments(init_start),
	djecho -a ssi.cmd ""   classes(realcode)";"
	djecho -a ssi.cmd "" end";"
	djecho -a ssi.cmd "" )
	xlink386  @ssi.cmd

endif # HIGHCCOMPILER
#endif (HIGHCCOMPILER)


#if (GNUCOMPILER)
ifeq ($(compiler),GNUCOMPILER)
%.$(lib):
	echo ARCHIVING $@ > con
	ar ru $@ $^

%.$(obj): %.c
	echo COMPILING $< > con
	gcc $(ccflags) $(defines:%=-D%) $(includes:%=-I%) -c $< -o $@

%.$(exe):
	echo LINKING $@ > con
	ld $(ldflags) -o $@ $^ -lm -lc -lgcc

endif # GNUCOMPILER
#endif (GNUCOMPILER)

#if (CYGNUSCOMPILER)
ifeq ($(compiler),CYGNUSCOMPILER)

%.$(lib):
	echo ARCHIVING $@ > con
	$(toolprefix)ar ru $@ $^
	$(toolprefix)ranlib $@

%.$(obj): %.c
	echo COMPILING $< > con
	$(toolprefix)gcc $(ccflags) $(defines:%=-D%) $(includes:%=-I%) -c $< -o $@

%.$(obj): %.cxx
	echo COMPILING $< > con
	$(toolprefix)g++ $(ccflags) $(defines:%=-D%) $(includes:%=-I%) -c $< -o $@

LD = $(toolprefix)gcc 
# LDFLAGS = -g -L$(INSTALLED_DIR)/lib -T$(INSTALLED_DIR)/lib/target.ld -nostdlib
ldflags += -g -L$(INSTALLED_DIR)/lib -T$(INSTALLED_DIR)/lib/target.ld -nostdlib

%.$(exe):
	echo LINKING $@ > con
	$(LD) -Xlinker --gc-sections -Xlinker -Map -Xlinker mapfile -o $@ $^ $(ldflags)

endif # CYGNUSCOMPILER
#endif (CYGNUSCOMPILER)

#if (MSDEVCOMPILER)
ifeq ($(compiler),MSDEVCOMPILER)

%.$(lib):
	echo ARCHIVING $@ > con
	echo /OUT:$@ $^ > temp
	lib /nologo @temp

%.$(obj): %.c
	echo COMPILING $< > con
	echo $(clflags) $(defines:%=/D%) $(includes:%=/I%) $< > temp
	cl /nologo @temp
	del temp

%.$(exe):
	echo LINKING $@ > con
	echo $(linkflags) $^ > temp
	link /nologo @temp
	del temp

endif # MSDEVCOMPILER
#endif (MSDEVCOMPILER)

#if (DIAB860COMPILER)
ifeq ($(compiler),DIAB860COMPILER)

%.$(lib):
	echo ARCHIVING $@ > con
	del $@
	djecho -o dardrv "" $@ $^
	dar -q -@@dardrv

%.$(obj): %.c
	echo COMPILING $< > con
	djecho -o dccdrv "" -D RELENV $(ccflags) $(defines:%=-D%) $(includes:%=-I%) $<
	dcc -@@dccdrv

%.$(obj): %.s
	echo ASSEMBLING $< > con
	das $<


%.$(exe):
	echo LINKING $@ > con
ifeq ($(doertfssa),"N")
	djecho -o dlddrv "" $(ldflags) ../xnet/crt0d860.o $^ 
	dld -o $@ -@@dlddrv ../xnet/diab860.dld
endif
ifeq ($(doertfssa),"Y")
	djecho -o dlddrv "" $(ldflags) crt0d860.o $^ 
	dld -o $@ -@@dlddrv diab860.dld
endif

endif # DIAB860COMPILER
#endif (DIAB860COMPILER)

#if (SDS68KCOMPILER)
ifeq ($(compiler),SDS68KCOMPILER)

start.o:    start.s 
	\sds71\cmd\as68000 -f -V 68360 start.s >con

%.$(lib):
	echo ARCHIVING $@ > con
	djecho -o filelist "" $@ $^
	\sds71\cmd\liber -c -n $@ -F filelist >con

%.$(obj): %.c
	echo COMPILING $< > con
	djecho -o drvrfile "" -D RELENV $(ccflags) $(defines:%=-D%) $(includes:%=-I%) $<
	\sds71\cmd\cc68000  -F drvrfile >con

ifeq ($(targ),UCOSSD60)
%.$(exe):
	echo LINKING $@ > con
	djecho -o $(app).lst "" $(ldflags) ../xnet/start.o $^ 
	\sds71\cmd\linker -F $(app).lst \sds71\lib68000\libc.a \
        \ucos60\oslib.a -o $(app)$(v).out -X -f link.spc -y -E $(app).err >con
else
%.$(exe):
	echo LINKING $@ > con
	djecho -o $(app).lst "" $(ldflags) start.o $^ 
	\sds71\cmd\linker -F $(app).lst \sds71\lib68000\libc.a \
        -o $(app)$(v).out -X -f link.spc -y -E $(app).err >con
endif # ucossd60

endif # SDS68KCOMPILER
#endif (SDS68KCOMPILER)


#if (POWERPCEABI)
ifeq ($(compiler),POWERPCEABI)
#compile1 = $(toolprefix)gcc $(ccflags) $(defines:%=-D%) $(includes:%=-I%) -c $< -o $@


%.$(lib):
	echo ARCHIVING $@ > con
	$(toolprefix)ar ru $@ $^
	$(toolprefix)ranlib $@

%.$(obj): %.c
	echo COMPILING $< > con
	$(toolprefix)gcc $(ccflags) -D RELENV $(defines:%=-D%) $(includes:%=-I%) -c $< -o $@

#%.$(obj): %.cxx
#	echo COMPILING $< > con
#	$(toolprefix)g++ $(ccflags) $(defines:%=-D%) $(includes:%=-I%) -c $< -o $@

ldflags +=-nostdinc -O2  -mbig -mrelocatable-lib -mno-eabi -mstrict-align -fno-builtin
ldflags +=-mcpu=860 -g -nostdlib
ldflags +=-Xlinker -Map -Xlinker $@.map 
ldflags +=-Xlinker -oformat -Xlinker srec 
#ldflags +=-Xlinker -L/e/Rtip.860/Source/Xnet -Xlinker -lxnet$(dbv).a
#ldflags +=-Xlinker -L/e/Rtip.860/source/xnet -Xlinker -lxnet$(dbv).a
#ldflags +=-Xlinker -l../xnet/xnet$(dbv).a
ldflags +=-Xlinker -L/tools/lib -Xlinker -liberty
#ldflags +=-Xlinker -L/tools/lib/gcc -Xlinker -lib/powerpc-eabi/2.9-ecosSWtools-981021
ldflags +=-Xlinker -lgcc 
ldflags +=-Xlinker -T ../xnet/gnu860.dld
 
%.$(exe):
	echo LINKING $@ > con
	echo tool prefix is $(toolprefix) > con
	$(toolprefix)gcc -o $@ ../xnet/rtipcrt0.o $^ $(ldflags) >list.asm

endif # POWERPCEABI
#endif (POWERPCEABI)


#### Generic Stuff

# Make the web page files
%.c %.h: %.htm %.cla
	echo BINTOC $< > con
	..\\webpage\\bintoc $(subst /,\\,$<) $(subst /,\\,$(basename $(notdir $<)))

# Make dependency files
%.d: %.c
	echo UPDATING DEPENDENCIES FOR $< > con
	gcc -undef -M $< $(defines:%=-D%) $(builtins:%=-D%) $(includes:%=-I%) | depend $(obj) > $@

.INTERMEDIATE: $(modules:%=%.d)
$(targ).inc: $(modules:%=%.d)
	echo MAKING $@ > con
	cat *.d > $@

.PHONY: CLEAN
CLEAN:
	echo CLEANING > con
	del *.$(obj)
	del *.$(lib)

.PHONY: dep
dep:
	echo DEPENDENCIES UPDATED > con

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -