Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #******************************************************************************
- #
- # makedefs - Definitions common to all makefiles.
- #
- # Copyright (c) 2005-2012 Texas Instruments Incorporated. All rights reserved.
- # Software License Agreement
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions
- # are met:
- #
- # Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- #
- # 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.
- #
- # Neither the name of Texas Instruments Incorporated 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.
- #
- # This is part of revision 9453 of the Stellaris Firmware Development Package.
- #
- #******************************************************************************
- #******************************************************************************
- #
- # Get the operating system name. If this is Cygwin, the .d files will be
- # munged to convert c: into /cygdrive/c so that "make" will be happy with the
- # auto-generated dependencies.
- #
- #******************************************************************************
- os:=${shell uname -s}
- #******************************************************************************
- #
- # The compiler to be used.
- #
- #******************************************************************************
- ifndef COMPILER
- COMPILER=gcc
- endif
- #******************************************************************************
- #
- # Definitions for using GCC.
- #
- #******************************************************************************
- ifeq (${COMPILER}, gcc)
- #
- # Get the prefix for the tools to use. Use arm-stellaris-eabi if it exists,
- # otherwise fall back to arm-none-eabi.
- #
- #PREFIX=${shell type arm-stellaris-eabi-gcc > /dev/null 2>&1 && \
- # echo arm-stellaris-eabi || echo arm-none-eabi}
- PREFIX=C:\energia\hardware\tools\lm4f\bin\arm-none-eabi
- #
- # The command for calling the compiler.
- #
- CC=${PREFIX}-gcc
- #
- # The location of the C compiler
- # ARMGCC_ROOT is used by some makefiles that need to know where the compiler
- # is installed. It is not used further for normal stellarisware apps
- #
- ARMGCC_ROOT:=${shell dirname '${shell sh -c "which ${CC}"}'}/..
- #
- # Determine the compiler CPU/FPU options based on the processor variant.
- #
- ifndef VARIANT
- CPU=-mcpu=cortex-m3
- FPU=
- else
- ifeq (${VARIANT}, cm3)
- CPU=-mcpu=cortex-m3
- FPU=
- else
- ifeq (${VARIANT}, cm4f)
- CPU=-mcpu=cortex-m4
- FPU=-mfpu=fpv4-sp-d16 -mfloat-abi=hard
- else
- $(error Unknown processor variant ${VARIANT}!)
- endif
- endif
- endif
- #
- # The flags passed to the assembler.
- #
- AFLAGS=-mthumb \
- ${CPU} \
- ${FPU} \
- -MD
- #
- # The flags passed to the compiler.
- #
- CFLAGS=-mthumb \
- ${CPU} \
- ${FPU} \
- -Os \
- -ffunction-sections \
- -fdata-sections \
- -MD \
- -std=c99 \
- -Wall \
- -D${TARGET} \
- -D${PART} \
- -g \
- -c
- #
- # The command for calling the library archiver.
- #
- AR=${PREFIX}-ar
- #
- # The command for calling the linker.
- #
- LD=${PREFIX}-ld
- #
- # The flags passed to the linker.
- #
- LDFLAGS=--gc-sections
- #
- # Get the location of libgcc.a from the GCC front-end.
- #
- LIBGCC=${shell ${CC} ${CFLAGS} -print-libgcc-file-name}
- #
- # Get the location of libc.a from the GCC front-end.
- #
- LIBC=${shell ${CC} ${CFLAGS} -print-file-name=libc.a}
- #
- # Get the location of libm.a from the GCC front-end.
- #
- LIBM=${shell ${CC} ${CFLAGS} -print-file-name=libm.a}
- #
- # The command for extracting images from the linked executables.
- #
- OBJCOPY=${PREFIX}-objcopy
- #
- # Tell the compiler to include debugging information if the DEBUG environment
- # variable is set.
- #
- ifdef DEBUG
- CFLAGS+=-g -D DEBUG
- endif
- #
- # Add the tool specific CFLAGS.
- #
- CFLAGS+=${CFLAGSgcc}
- #
- # Add the include file paths to AFLAGS and CFLAGS.
- #
- AFLAGS+=${patsubst %,-I%,${subst :, ,${IPATH}}}
- CFLAGS+=${patsubst %,-I%,${subst :, ,${IPATH}}}
- CFLAGS+=-I../../../common -I../../cores/msp432/driverlib -I../../cores/msp432/driverlib/MSP432P4xx -I../../cores/msp432/inc -I../../cores/msp432/inc/CMSIS @"compiler.opt"
- #
- # The rule for building the object file from each C source file.
- #
- VERBOSE=foo
- lib/${COMPILER}${SUFFIX}/%.o: %.c
- @${CC} ${CFLAGS} -D${COMPILER} -o ${@} ${<}
- ifneq ($(findstring CYGWIN, ${os}), )
- @sed -i -r 's/ ([A-Za-z]):/ \/cygdrive\/\1/g' ${@:.o=.d}
- endif
- #
- # The rule for building the object file from each assembly source file.
- #
- lib/${COMPILER}${SUFFIX}/%.o: %.S
- @${CC} ${AFLAGS} -D${COMPILER} -o ${@} -c ${<}
- ifneq ($(findstring CYGWIN, ${os}), )
- @sed -i -r 's/ ([A-Za-z]):/ \/cygdrive\/\1/g' ${@:.o=.d}
- endif
- #
- # The rule for creating an object library.
- #
- lib/${COMPILER}${SUFFIX}/%.a:
- @${AR} -cr ${@} ${^}
- #
- # The rule for linking the application.
- #
- lib/${COMPILER}${SUFFIX}/%.axf:
- ldname="${ROOT}/gcc/standalone.ld"; \
- ${LD} -T $${ldname} \
- --entry ${ENTRY_${notdir ${@:.axf=}}} \
- ${LDFLAGSgcc_${notdir ${@:.axf=}}} \
- ${LDFLAGS} -o ${@} $(filter %.o %.a, ${^}) \
- '${LIBM}' '${LIBC}' '${LIBGCC}'
- @${OBJCOPY} -O binary ${@} ${@:.axf=.bin}
- endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement