📄 rules.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 + -