📄 makefile
字号:
#
# For macro variables
# TARGET=[output filename]
# ASMPARAM=[assembler parameter]
# CCPARAM=[compiler parameter]
# LINKPARAM=[linker parameter]
# LIBFILE=[library filename]
#
WORKPath = ../../..
INCPath = -I$(WORKPath)/src/stdcom \
-I$(WORKPath)/src/device/s3c4510b \
-I$(WORKPath)/src/app \
-I$(WORKPath)/src/swapi \
-I$(WORKPath)/src/ttycore -I$(WORKPath)/src/ttypage \
-I$(WORKPath)/src/ttypageex \
-I$(WORKPath)/src/netlib \
-I$(WORKPath)/src/webpage \
TARGETPath = $(WORKPath)/bin
TOOLRootPath= /usr/local/arm/3.4.3
TOOLPath = $(TOOLRootPath)/bin
ASM = $(TOOLPath)/arm-elf-as
CC = $(TOOLPath)/arm-elf-gcc
LINK = $(TOOLPath)/arm-elf-ld
LIBRARY = $(TOOLPath)/arm-elf-ar
OBJCOPY = $(TOOLPath)/arm-elf-objcopy
CHIPTOOL = #-D__ADD_ANLZ
ASMFLAGS = $(ASMPARAM) --gdwarf2 -mapcs-32 -mcpu=arm7tdmi -march=armv4t \
$(INCPath)
CFLAGS = $(CCPARAM) $(CHIPTOOL) -gdwarf-2 -c -mstructure-size-boundary=8 -mapcs-32 \
-mcpu=arm7tdmi -march=armv4t -fomit-frame-pointer -Wall \
$(INCPath)
LINKFLAGS = $(LINKPARAM) -o $(TARGETPath)/$(TARGET) \
-Map $(TARGETPath)/$(TARGET).sym $(OBJS) $(LIBS) \
-L $(shell dirname `$(CC) -$(CFLAGS) -print-libgcc-file-name`) \
-lgcc
OBJ_SOC = main.o init.o isr.o soc.o timer.o uart.o
OBJ_CMN = crc.o flash.o str.o tty.o xymodem.o sprintf.o
OBJ_SWITCH = sweep.o swgmrptb.o swipmtb.o swpmactb.o swsmactb.o swl2ptb.o \
swlogtb.o swmcstcnttb.o swmibtb.o swmii.o swmisc.o swmodl.o \
swmpmtb.o swmsttb.o swpkt.o swprimtb.o swport.o swproto.o \
swprvtb.o swqos.o swrate.o swreg.o swsecu.o swsnf.o swsram.o \
swstp.o swsys.o swtrk.o swvlantb.o swfwd.o swmactblscan.o
OBJ_PAGE = dbgmenu.o eng_act.o eng_io.o eng_move.o engine.o allpages.o \
cfgstr.o gen_act.o login.o picfgmp.o pieeprom.o pigencfg.o \
pimod.o pimsg.o piportmp.o pisystem.o \
\
pgadmin.o pgboot.o pginfo.o pgmain.o pgmisc.o pgport.o \
pgqos.o pgrate.o pgsniff.o pgtrunk.o pgvlan.o pgtcl.o \
piadmin.o pimisc.o piport.o piqos.o pirate.o \
pisniff.o pitrunk.o pivlneep.o pivlnflt.o pivlngrp.o \
pivlnmod.o tclcmd.o\
\
pg8021x.o pgfwupdt.o pggmrp.o pgipcfg.o pgipm.o pgmac.o \
pgmib.o pgprov.o pgprvmis.o pgsmac.o pgstp.o pgacl.o \
pi8021x.o pifwupdt.o pigmrpep.o pigmrpgp.o pigmrpmd.o \
piipcfg.o piipmeep.o piipmgrp.o piipmmod.o pimib.o \
piprvmis.o pismac.o pismacep.o pismacgp.o pistp.o piacleep.o \
piaclgrp.o \
\
pgmacflt.o pimacfltep.o pimacfltgp.o pimacfltmd.o \
\
weblib.o webfs.o getfile.o cgi_show.o cgi_set.o
OBJS_NET = tasknet.o netif.o arp.o icmp.o ip.o ipcalc.o udp.o tcp.o \
tftp.o tftpc.o httpd.o
OBJS = $(OBJ_SOC) $(OBJ_CMN) $(OBJ_SWITCH) $(OBJ_PAGE)
LIBS = $(LIBFILE)
all:
make cleanall
make bimgl
make cleanall
make bimgb
make cleanall
bimgl:
-rm -f errors.txt
make main TARGET=imagel.elf CCPARAM="-O2 -mlittle-endian -mno-apcs-stack-check -D__NP_SUPPORT_TCP -D__LITTLE_ENDIAN -D__MODULE_WEB_SMART -D__PRTCL_VLAN_REMOVE -D__ADD_ACL_MENU -D__ADD_SLI" LINKPARAM="-EL -T main.lds" LIBFILE="../../netlib/netlib100l.a"
$(OBJCOPY) -S -I elf32-littlearm -O binary $(TARGETPath)/imagel.elf $(TARGETPath)/image4510l.bin
bimgb:
-rm -f errors.txt
make main TARGET=imageb.elf CCPARAM="-O2 -mbig-endian -mno-apcs-stack-check -D__NP_SUPPORT_TCP -D__BIG_ENDIAN -D__BIG_ENDIAN_OF_BIT -D__MODULE_WEB_SMART -D__PRTCL_VLAN_REMOVE -D__ADD_ACL_MENU -D__ADD_SLI" LINKPARAM="-EB -T main.lds" LIBFILE="../../netlib/netlib100b.a"
$(OBJCOPY) -S -I elf32-bigarm -O binary $(TARGETPath)/imageb.elf $(TARGETPath)/image4510b.bin
main: $(OBJS)
$(LINK) $(LINKFLAGS) 2>>errors.txt
clean:
@find ../ \( -name '*.o' -or -name '*.err' -or -name '*.obj' -or -name '*.bak' -or -name '*.lst' -or -name '*.map' -or -name '*.sym' -or -name '*.swp' -or -name '*.csm' \) -exec rm -f {} \;
@find ../ \( -name '*.~de' -or -name '*.lnk' -or -name '*.opt' -or -name '*.__i' -or -name '*.m51' -or -name '*.lnp' -or -name '*.ls1' -or -name '*.src' \) -exec rm -f {} \;
-rm -f .dep
cleanall: clean
@find ../ \( -name '*.a' -or -name '*.lib' \) -exec rm -f {} \;
-rm -f ../../../bin/*. ../../../bin/*.mpj ../../../bin/*.sym ../../../bin/*.axf ../../../bin/*.elf
init.o: $(WORKPath)/src/device/s3c4510b/inita.S $(WORKPath)/src/device/s3c4510b/devicea.S
$(CC) $(CFLAGS) $(WORKPath)/src/device/s3c4510b/inita.S -o init.o 2>>errors.txt
#
# Pattern rule
#
VPATH = ../../stdcom \
../../device/s3c4510b \
../../app \
../../swapi \
../../ttycore ../../ttypage \
../../ttypageex \
../../netlib \
../../webpage \
%.o : %.c
$(CC) $(CFLAGS) $< 2>>errors.txt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -