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

📄 makefile.sdcc

📁 這是一個實時嵌入式作業系統 實作了MCS51 ARM等MCU
💻 SDCC
字号:
############################################################################# arch/z80/src/Makefile.sdcc##   Copyright (C) 2008 Gregory Nutt. All rights reserved.#   Author: Gregory Nutt <spudmonkey@racsa.co.cr>## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:## 1. Redistributions of source code must retain the above copyright#    notice, this list of conditions and the following disclaimer.# 2. Redistributions in binary form must reproduce the above copyright#    notice, this list of conditions and the following disclaimer in#    the documentation and/or other materials provided with the#    distribution.# 3. Neither the name NuttX nor the names of its contributors may be#    used to endorse or promote products derived from this software#    without specific prior written permission.## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE# POSSIBILITY OF SUCH DAMAGE.########################################################################################################################################################## Tools# CFLAGS, CPPFLAGS, ASFLAGS, LDFLAGS are set in $(TOPDIR)/Make.defsCFLAGS		+= -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(TOPDIR)/schedCPPFLAGS	+= -D__ASSEMBLY__############################################################################# Files and directories# There should be one head source (.asm file)HEAD_AOBJ	= $(HEAD_ASRC:$(ASMEXT)=$(OBJEXT))# Assembly sources and objectsASRCS		= $(CHIP_ASRCS) $(CMN_ASRCS)AOBJS		= $(ASRCS:$(ASMEXT)=$(OBJEXT))# C sources and objectsCSRCS		= $(CHIP_CSRCS) $(CMN_CSRCS)COBJS		= $(CSRCS:.c=$(OBJEXT))# All sources and objctsSRCS		= $(ASRCS) $(CSRCS)OBJS		= $(AOBJS) $(COBJS)# Sources that can have dependencies (no .asm files)DEPSRCS		= $(CSRCS)# DirectoriesARCH_SRCDIR	= $(TOPDIR)/arch/$(CONFIG_ARCH)/srcBOARDDIR	= $(TOPDIR)/arch/$(CONFIG_ARCH)/src/boardVPATH		= chip:common:board# LibrariesLIBGCC		= ${shell $(CC) -print-libgcc-file-name}# Supports dynamic sizing of HEAP.#HEAP_BASE	= ${shell ./mkhpbase.sh}############################################################################# Targetsall: $(HEAD_AOBJ) libarch$(LIBEXT)$(AOBJS) $(HEAD_AOBJ): %$(OBJEXT): %$(ASMEXT)	$(call ASSEMBLE, $<, $@)$(COBJS): %$(OBJEXT): %.c	$(call COMPILE, $<, $@)# This is a kludge to work around some conflicting symbols in libsdcc.liXqueb$(SDCCLIBDIR)/myz80.lib: $(SDCCLIBDIR)/$(SDCCLIB)	@cat $(SDCCLIBDIR)/$(SDCCLIB) | \		grep -v alloc | grep -v free | grep -v printf | \		grep -v _str  | grep -v _mem | grep -v crt0\.o \		> myz80.lib	@sudo mv -f myz80.lib $(SDCCLIBDIR)/myz80.lib# Create a header file that contains addressing information needed by the codeup_mem.h:	@echo "#ifndef __UP_MEM_H" >up_mem.h	@echo "#define __UP_MEM_H" >>up_mem.h	@echo "" >>up_mem.h	@echo "#include <nuttx/config.h>" >>up_mem.h	@echo "" >>up_mem.h	@echo "#define CONFIG_STACK_END   $(CONFIG_DRAM_SIZE)" >> up_mem.h	@echo "#define CONFIG_STACK_BASE  (CONFIG_STACK_END - $(CONFIG_PROC_STACK_SIZE))" >> up_mem.h	@echo "#define CONFIG_HEAP1_END   CONFIG_STACK_BASE" >> up_mem.h	@echo "#define CONFIG_HEAP1_BASE  $(HEAP_BASE)" >> up_mem.h	@echo "" >>up_mem.h	@echo "#endif /* __UP_MEM_H */" >>up_mem.hasm_mem.h:	@echo "	CONFIG_COMPILER_OTHER	== 0" > asm_mem.h	@echo "	CONFIG_COMPILER_SDCC	== 1" >> asm_mem.hifeq ($(CC),sdcc)	@echo "	CONFIG_COMPILER	== 1" >> asm_mem.helse	@echo "	CONFIG_COMPILER	== 0" >> asm_mem.hendif	@echo "	CONFIG_STACK_END	== ($(CONFIG_DRAM_SIZE) - 1)" >> asm_mem.h	@echo "	CONFIG_STACK_BASE	== (CONFIG_STACK_END - $(CONFIG_PROC_STACK_SIZE))" >> asm_mem.h	@echo "	CONFIG_HEAP1_END	== (CONFIG_STACK_END - $(CONFIG_PROC_STACK_SIZE) - 1)" >> asm_mem.h	@echo "	CONFIG_HEAP1_BASE	== $(HEAP_BASE)" >> asm_mem.h# Combine all objects in this directory into a librarylibarch$(LIBEXT): up_mem.h asm_mem.h $(OBJS)	@( for obj in $(OBJS) ; do \		$(call ARCHIVE, $@, $${obj}); \	done ; )# This builds the libboard library in the board/ subdirectory board/libboard$(LIBEXT):	$(MAKE) -C board TOPDIR="$(TOPDIR)" libboard$(LIBEXT)# This target builds the final executablepass1.ihx: up_mem.h asm_mem.h $(SDCCLIBDIR)/myz80.lib $(HEAD_AOBJ) board/libboard$(LIBEXT)	@echo "LD: pass1.ihx"	@echo "--" >pass1.lnk				# Non-interactive	@echo "-k $(BOARDDIR)" >>pass1.lnk		# Path to board library	@echo "-k $(SDCCLIBDIR)" >>pass1.lnk		# Path to SDCC z80 library	@echo "-l libboard$(LIBEXT)" >>pass1.lnk	# Name of board library	@for LIB in $(LINKLIBS); do \		echo "-l $(TOPDIR)/$$LIB" >> pass1.lnk ;\	done	@echo "-l myz80.lib" >>pass1.lnk		# Name of SDCC z80 libraryifneq ($(CONFIG_LINKER_START_AREA),)	@echo "-b START=$(CONFIG_LINKER_START_AREA)" >>pass1.lnk		# Start of START areaelse	@echo "-b START=0" >>pass1.lnk			# Start of START areaendififneq ($(CONFIG_LINKER_CODE_AREA),)	@echo "-b _CODE=$(CONFIG_LINKER_CODE_AREA)" >>pass1.lnk		# Start of _CODE areaelse	@echo "-b _CODE=256" >>pass1.lnk		# Start of _CODE areaendif	@echo "-i" >>pass1.lnk				# Intel hex format	@echo "-x" >>pass1.lnk				# Hexadecimal	@echo "-m" >>pass1.lnk				# Generate a map file	@echo "-j" >>pass1.lnk				# Generate a symbol file	@echo "pass1.ihx" >>pass1.lnk			# Path to head object	@echo "$(HEAD_AOBJ)" >>pass1.lnk		# Path to head object	@echo "-e" >>pass1.lnk				# End of script	@$(LD) -f pass1.lnk	@rm -f up_mem.h asm_mem.h	@rm -f up_allocateheap$(OBJEXT) $(HEAD_AOBJ) libarch$(LIBEXT)	@$(MAKE) TOPDIR="$(TOPDIR)" libarch$(LIBEXT)	@$(MAKE) TOPDIR="$(TOPDIR)" $(HEAD_AOBJ)nuttx.ihx: up_mem.h asm_mem.h $(SDCCLIBDIR)/myz80.lib $(HEAD_AOBJ) board/libboard$(LIBEXT)	@echo "LD: nuttx.ihx"	@echo "--" >nuttx.lnk				# Non-interactive	@echo "-k $(BOARDDIR)" >>nuttx.lnk		# Path to board library	@echo "-k $(SDCCLIBDIR)" >>nuttx.lnk		# Path to SDCC z80 library	@echo "-l libboard$(LIBEXT)" >>nuttx.lnk	# Name of board library	@for LIB in $(LINKLIBS); do \		echo "-l $(TOPDIR)/$$LIB" >> nuttx.lnk ;\	done	@echo "-l myz80.lib" >>nuttx.lnk		# Name of SDCC z80 libraryifneq ($(CONFIG_LINKER_START_AREA),)	@echo "-b START=$(CONFIG_LINKER_START_AREA)" >>nuttx.lnk		# Start of START areaelse	@echo "-b START=0" >>nuttx.lnk			# Start of START areaendififneq ($(CONFIG_LINKER_CODE_AREA),)	@echo "-b _CODE=$(CONFIG_LINKER_CODE_AREA)" >>nuttx.lnk		# Start of _CODE areaelse	@echo "-b _CODE=256" >>nuttx.lnk		# Start of _CODE areaendif	@echo "-i" >>nuttx.lnk				# Intel hex format	@echo "-x" >>nuttx.lnk				# Hexadecimal	@echo "-m" >>nuttx.lnk				# Generate a map file	@echo "-j" >>nuttx.lnk				# Generate a symbol file	@echo "nuttx.ihx" >>nuttx.lnk			# Path to head object	@echo "$(HEAD_AOBJ)" >>nuttx.lnk		# Path to head object	@echo "-e" >>nuttx.lnk				# End of script	@$(LD) -f nuttx.lnknuttx$(EXEEXT): pass1.ihx nuttx.ihx	@rm -f pass1.*	@cp -f nuttx.map $(TOPDIR)/.ifeq ($(EXEEXT),.cmd)	sed s/:00000001FF/:00520001AD/ nuttx.ihx | \	hex2cmd > $(TOPDIR)/nuttx.cmdelse	@packihx nuttx.ihx > $(TOPDIR)/nuttx$(EXEEXT)endif# Build dependencies.depend: Makefile up_mem.h asm_mem.h chip/Make.defs $(DEPSRCS)	@if [ -e board/Makefile ]; then \		$(MAKE) -C board TOPDIR="$(TOPDIR)" depend ; \	fi	@$(MKDEP) --dep-path chip --dep-path common $(CC) -- $(CFLAGS) -- $(DEPSRCS) >Make.dep	@touch $@depend: .dependclean:	@if [ -e board/Makefile ]; then \		$(MAKE) -C board TOPDIR="$(TOPDIR)" clean ; \	fi	@rm -f libarch$(LIBEXT) up_mem.h asm_mem.h pass1.* nuttx.* *~ .*.swp	$(call CLEAN)distclean: clean	@if [ -e board/Makefile ]; then \		$(MAKE) -C board TOPDIR="$(TOPDIR)" distclean ; \	fi	@rm -f Make.dep .depend-include Make.dep

⌨️ 快捷键说明

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