📄 readme
字号:
Specifies the names of tools for compiling programs. Names in here should be fully qualified, and NOT depend on $PATH. Also specifies compiler flags to be used to generate optimized, debugging and profile versions, as well as rules to compile assembly language and make makefile dependencies. Configuration Variables ----------------------- Variables you have to set in the environment or in your Makefile. Note: the RTEMS module files set RTEMS_ROOT and RTEMS_CUSTOM for you. Makefile Variables ------------------ RTEMS_BSP -- name of your 'bsp' eg: pc386, mvme136 RTEMS_CPU -- CPU architecture e.g.: i386, m68k RTEMS_CPU_FAMILY -- CPU model e.g.: i486dx, m68020 RTEMS_ROOT -- The root of your source tree. All other file names are derived from this. [ eg: % setenv RTEMS_ROOT $HOME/work/RTEMS ] RTEMS_CUSTOM -- name of your config files in make/custom Example: $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg The value RTEMS_ROOT is used in the custom files to generate the make(1) variables: PROJECT_RELEASE PROJECT_BIN PROJECT_INCLUDE PROJECT_TOOLS etc., which are used within the make config files themselves. (The files in make/*.cfg try to avoid use of word RTEMS so they can be more easily shared by other projects) Preset variables ---------------- Aside from command names set by the OS and compiler config files, a number of MAKE variables are automatically set and maintained by the config files. PROJECT_RELEASE -- release/install directory [ $(PROJECT_ROOT) ] PROJECT_BIN -- directory for installed binaries [ $(PROJECT_ROOT)/bin ] PROJECT_TOOLS -- directory for build environment commands [ eg: $(PROJECT_ROOT)/build-tools ] ARCH -- target sub-directory for object code [ eg: o-optimize or o-debug ] VARIANTS -- full list of all possible values for $(ARCH); used mainly for 'make clean' [ eg: "o-optimize o-debug o-profile" ] VARIANT_VA -- Variant name. Normally "", but for 'make debug' it is "debug", for 'make profile', "profile, etc. see make/leaf.cfg for more info. Preset compilation variables ---------------------------- This is a list of some of the compilation variables. Refer to the compiler config files for the complete list. CFLAGS_OPTIMIZE_V -- value of optimize flag for compiler [ eg: -O ] CFLAGS_DEBUG_V -- value of debug flag for compiler [ eg: -g ] CFLAGS_PROFILE_V -- compiler profile flags [ eg: -pg ] CFLAGS_DEBUG_OPTIMIZE_V -- optimize flag if compiling for debug [ eg: "" ] CFLAGS_DEBUG CFLAGS_PROFILE CFLAGS_OPTIMIZE -- current values for each depending on make variant. LDFLAGS_STATIC_LIBRARIES_V -- ld option for static libraries -Bstatic or -dy (svr4) LDFLAGS_SHARED_LIBRARIES_V -- ld option for dynamic libraries -Bdynamic or -dn (svr4) Makefile Variables ------------------ The following variables may be set in a typical Makefile. C_PIECES -- File names of your .c files without '.c' suffix. [ eg: C_PIECES=main funcs stuff ] CC_PIECES -- ditto, except for .cc files S_PIECES -- ditto, except for .S files. LIB -- target library name in leaf library makefiles. [ eg: LIB=${ARCH}/libmine.a ] H_FILES -- your .h files in this directory. [ eg: H_FILES=stuff.h extra.h ] DEFINES -- cc -D items. Included in CPPFLAGS. leaf Makefiles. [ eg: DEFINES += -DUNIX ] CPPFLAGS -- -I include directories. leaf Makefiles. [ eg: CPPFLAGS += -I../include ] LD_PATHS -- arguments to -L for ld. Will be prefixed with '-L' or '-L ' as appropriate and included in LDFLAGS. LDFLAGS -- -L arguments to ld; more may be ADDed. LD_LIBS -- libraries to be linked in. [ eg: LDLIBS += ../libfoo/${ARCH}/libfoo.a ] XCFLAGS -- "extra" CFLAGS for special needs. Pre-pended to CFLAGS. Not set or used by Makefiles. Can be set on command line to pass extra flags to the compiler. XCPPFLAGS -- ditto for CPPFLAGS Can be set on command line to pass extra flags to the preprocessor. XCCPPFLAGS -- same as XCPPFLAGS for C++. XCCFLAGS -- same as XCFLAGS for C++. SUBDIRS -- list of sub directories for make recursion. directory Makefiles only. [ eg: SUBDIRS=cpu bsp ] CLEAN_ADDITIONS -- list of files or directories that should be deleted by 'make clean' [ eg: CLEAN_ADDITIONS += y.tab.c ] See 'leaf.cfg' for the 'clean:' rule and its default deletions. CLOBBER_ADDITIONS -- list of files or directories that should be deleted by 'make clobber' Since 'make clobber' includes 'make clean', you don't need to duplicate items in both. Command names ------------- The following commands should only be called as make variables: MAKE,INSTALL,INSTALL_VARIANT,SHELL ECHO,CAT,CP,MV,LN,MKDIR,CHMOD SED CC,CPP,AS,AR,LD,NM,SIZE,RANLIB,MKLIB, YACC,LEX,LINT,CTAGS,ETAGS In addition, the following commands specifically support the installation of libraries, executables, header files, and other things that need to be installed: INSTALL_CHANGE - install a file only if the source file is actually different than the installed copy or if there is no installed copy. USAGE: usage: install-if-change [ -vmV ] file [ file ... ] dest-directory-or-file -v -- verbose -V suffix -- suffix to append to targets (before any . suffix) eg: -V _g would change 'foo' to 'foo_g' and 'libfoo.a' to 'libfoo_g.a' -m mode -- mode for new file(s) INSTALL_VARIANT - installs the built file using the proper variant suffix (e.g. _g for debug turns libmine.a into libmine_g.a) This is implemented as a macro that invokes install-if-change with the appropriate -V argument setting. Special Directory Makefile Targets ---------------------------------- all_WRAPUP clean_WRAPUP install_WRAPUP clean_WRAPUP clobber_WRAPUP depend_WRAPUP -- Specify additional commands for recursive (directory level) targets. This is handy in certain cases where you need to do bit of work *after* a recursive make. make/Templates -------------- This directory contains Makefile and source file templates that should help in creating or converting makefiles. Makefile.leaf Template leaf Makefiles. Makefile.lib Template leaf library Makefiles. Makefile.dir Template "directory" makefile.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -