320 lines
8.6 KiB
Makefile
Executable File
320 lines
8.6 KiB
Makefile
Executable File
##
|
|
# @file Makefile.config
|
|
#
|
|
# @brief This file contains the global default tool arguments,
|
|
# which could be appended or overwrited by each module
|
|
#
|
|
# @author Howard Chen
|
|
##
|
|
|
|
##
|
|
# @brief option flags for gcc/tcc
|
|
# @param CC : option for c compiler
|
|
# @param CXX : option for c++ compiler
|
|
# @param WALL : option for warning message
|
|
# @param DEBUG : option for debugging format
|
|
# @param MOPTS : option for specific target
|
|
# @param INCLUDE_ADD : INCLUDE ADD-ON
|
|
# @param LDFLAGS_ADD : LDFLAGS ADD-ON
|
|
# @param SYS_LIBS : SYSTEM library add for image linking
|
|
# @param STARTUP : startup code (if any)
|
|
##
|
|
|
|
GCC = $(CROSS)gcc
|
|
CC = $(GCC)
|
|
CXX = $(CROSS)g++
|
|
##
|
|
# -------------[ config for native ]------------------------------
|
|
##
|
|
ifeq ($(CROSS),)
|
|
ifeq ($(strip $(LINUX)),2)
|
|
#Linux kernel space
|
|
#MOPTS ?= -m32 -fno-builtin -D__KERNEL__ -I../linux/include -DMODULE -DMODVERSIONS -include ../linux/include/linux/modversions.h
|
|
MOPTS ?= -m32 -fno-builtin -D__KERNEL__ -DMODULE -DMODVERSIONS
|
|
CONFIG += -DLINUX
|
|
else
|
|
WALL ?= -Wall
|
|
DEBUGS ?= -g
|
|
MOPTS ?= -m32
|
|
ifeq ($(strip $(LINUX)),1)
|
|
CONFIG += -DLINUX
|
|
endif
|
|
SYS_LIBS?= pthread rt
|
|
RUN ?= ./
|
|
endif
|
|
DEF_ASFLAGS=-m32
|
|
endif
|
|
|
|
ifeq ($(strip $(CROSS)),arm-none-linux-)
|
|
ifeq ($(strip $(LINUX)),2)
|
|
#Linux kernel space
|
|
MOPTS ?= -fno-builtin -D__KERNEL__ -DMODULE -DMODVERSIONS
|
|
CONFIG += -DLINUX
|
|
else
|
|
WALL ?= -Wall
|
|
DEBUGS ?= -g
|
|
THUMB ?=-mthumb
|
|
MOPTS ?= -fcall-saved-r10 -march=armv5te -ffunction-sections -fdata-sections -mthumb-interwork -msoft-float
|
|
CONFIG += -DLINUX
|
|
SYS_LIBS?= pthread rt
|
|
RUN ?=
|
|
DEF_ASFLAGS = $(DEBUGS)
|
|
endif
|
|
DEF_ASFLAGS = -msoft-float -mthumb-interwork
|
|
endif
|
|
|
|
ifeq ($(strip $(CROSS)),mipsel-linux-)
|
|
ifeq ($(strip $(LINUX)),2)
|
|
#Linux kernel space
|
|
MOPTS ?= -fno-builtin -D__KERNEL__ -DMODULE -DMODVERSIONS
|
|
CONFIG += -DLINUX
|
|
else
|
|
WALL ?= -Wall
|
|
DEBUGS ?= -g
|
|
#THUMB ?=-mthumb
|
|
#MOPTS ?= -fcall-saved-r10 -march=armv5te -ffunction-sections -fdata-sections -mthumb-interwork -msoft-float
|
|
CONFIG += -DLINUX
|
|
SYS_LIBS?= pthread rt
|
|
RUN ?=
|
|
DEF_ASFLAGS = $(DEBUGS)
|
|
endif
|
|
DEF_ASFLAGS = -msoft-float -mdsp -mdspr2
|
|
endif
|
|
|
|
ifeq ($(strip $(CROSS)),arm-linux-)
|
|
ifeq ($(strip $(LINUX)),2)
|
|
#Linux kernel space
|
|
MOPTS ?= -fno-builtin -D__KERNEL__ -DMODULE -DMODVERSIONS
|
|
CONFIG += -DLINUX
|
|
else
|
|
WALL ?= -Wall
|
|
DEBUGS ?= -g
|
|
THUMB ?=-mthumb
|
|
ifeq ($(PLATFORM),mt6280)
|
|
MOPTS ?= -fcall-saved-r10 -march=armv5te -ffunction-sections -fdata-sections -mthumb-interwork
|
|
else
|
|
ifeq ($(PLATFORM),mt6290)
|
|
MOPTS ?= -fcall-saved-r10 -march=armv7-a -ffunction-sections -fdata-sections -mthumb
|
|
else
|
|
MOPTS ?= -fcall-saved-r10 -march=armv6zk -ffunction-sections -fdata-sections -mthumb-interwork -mfpu=vfp -mfloat-abi=softfp
|
|
endif
|
|
endif
|
|
CONFIG += -DLINUX
|
|
SYS_LIBS?= pthread rt
|
|
RUN ?=
|
|
DEF_ASFLAGS = $(DEBUGS)
|
|
endif
|
|
ifeq ($(PLATFORM),mt6280)
|
|
DEF_ASFLAGS = -mthumb-interwork
|
|
else
|
|
DEF_ASFLAGS = -mfpu=vfp -mfloat-abi=softfp -mthumb-interwork
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(strip $(CROSS)),aarch64-linux-)
|
|
ifeq ($(strip $(LINUX)),2)
|
|
#Linux kernel space
|
|
MOPTS ?= -fno-builtin -D__KERNEL__ -DMODULE -DMODVERSIONS
|
|
CONFIG += -DLINUX
|
|
else
|
|
WALL ?= -Wall
|
|
DEBUGS ?= -g
|
|
MOPTS ?= -march=armv8-a -ffunction-sections -fdata-sections
|
|
CONFIG += -DLINUX
|
|
SYS_LIBS?= pthread rt
|
|
RUN ?=
|
|
DEF_ASFLAGS = $(DEBUGS)
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(strip $(CROSS)),aarch64-poky-linux-)
|
|
INCLUDE_ADD += $(BB_INCLUDE_ADD)
|
|
LDFLAGS_ADD += $(BB_LDFLAGS_ADD) ${BB_LDPATH_ADD}
|
|
MOPTS += $(BB_CFLAGS_ADD)
|
|
ifeq ($(strip $(LINUX)),2)
|
|
#Linux kernel space
|
|
MOPTS += -fno-builtin -D__KERNEL__ -DMODULE -DMODVERSIONS
|
|
CONFIG += -DLINUX
|
|
else
|
|
WALL ?= -Wall
|
|
DEBUGS ?= -g
|
|
MOPTS += -march=armv8-a -ffunction-sections -fdata-sections
|
|
CONFIG += -DLINUX
|
|
SYS_LIBS?= pthread rt
|
|
RUN ?=
|
|
DEF_ASFLAGS = $(DEBUGS)
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(strip $(CROSS)),arm-poky-linux-gnueabi-)
|
|
INCLUDE_ADD += $(BB_INCLUDE_ADD)
|
|
LDFLAGS_ADD += $(BB_LDFLAGS_ADD) ${BB_LDPATH_ADD}
|
|
MOPTS += $(BB_CFLAGS_ADD)
|
|
ifeq ($(strip $(LINUX)),2)
|
|
#Linux kernel space
|
|
MOPTS ?= -fno-builtin -D__KERNEL__ -DMODULE -DMODVERSIONS
|
|
CONFIG += -DLINUX
|
|
else
|
|
WALL ?= -Wall
|
|
DEBUGS ?= -g
|
|
THUMB ?=-mthumb
|
|
MOPTS ?= -fcall-saved-r10 -march=armv7-a -ffunction-sections -fdata-sections -mthumb-interwork -mfpu=vfp -mfloat-abi=softfp -mtune=cortex-a7
|
|
CONFIG += -DLINUX
|
|
ifeq ($(strip $(PACKAGE_ARCH)),$(filter $(strip $(PACKAGE_ARCH)), cortexa7hf-vfp-vfpv4-neon cortexa7hf-neon-vfpv4))
|
|
MOPTS += -fcall-saved-r10 -march=armv7-a -ffunction-sections -fdata-sections -mthumb-interwork -mfpu=neon-vfpv4 -mfloat-abi=hard -mtune=cortex-a7
|
|
CONFIG += -mhard-float
|
|
endif
|
|
SYS_LIBS?= pthread rt
|
|
RUN ?=
|
|
DEF_ASFLAGS = $(DEBUGS)
|
|
endif
|
|
DEF_ASFLAGS = -mfpu=vfp -mfloat-abi=softfp -mthumb-interwork
|
|
|
|
endif
|
|
|
|
|
|
##
|
|
# ------------- config for arm-none-eabi- ---------------------------------
|
|
# @param THUMB thumb-mode switch
|
|
# @param ARM arm-mode switch
|
|
# @param EL little-endian switch
|
|
# @param EB big-endian switch
|
|
# @param COMPILER rvds/gcc switch
|
|
# @param INIT initial scheme
|
|
##
|
|
ifeq ($(strip $(CROSS)),arm-none-eabi-)
|
|
RUN ?=mdebug 192.168.0.8 9000
|
|
ifeq ($(strip $(COMPILER)),RVDS)
|
|
CC = tcc
|
|
CXX = tcc
|
|
endif
|
|
|
|
ifeq ($(strip $(COMPILER)),RVDS)
|
|
WALL ?=
|
|
DEBUG ?=-g
|
|
THUMB ?=--thumb
|
|
ARM ?=--arm
|
|
EL ?=--littleend
|
|
EB ?=--bigend
|
|
MOPTS ?=--cpu arm9
|
|
else
|
|
WALL ?=-Wall
|
|
DEBUGS ?=-gstabs
|
|
THUMB ?=-mthumb
|
|
ARM ?=-marm
|
|
EL ?=-mlittle-endian
|
|
EB ?=-mbig-endian
|
|
MOPTS ?=-fcall-saved-r10 -mthumb-interwork -march=armv5te -msoft-float -ffunction-sections -fdata-sections
|
|
endif
|
|
|
|
ifeq ($(strip $(COMPILER)),RVDS)
|
|
INCLUDE_ADD += -I /usr/local/ARM/RVCT/Data/2.2/349/include/unix/
|
|
endif
|
|
ifeq ($(strip $(NEWLIB)),1)
|
|
CONFIG += -DNEWLIB
|
|
endif
|
|
LD_SCRIPT ?= -Tlink.ld
|
|
INIT ?= base_init
|
|
SYS_LIBS ?= gcc c
|
|
SYS_LIBS += $(INIT)
|
|
LDFLAGS_ADD += -nostartfiles -nodefaultlibs -Wl,--gc-sections $(LD_SCRIPT)
|
|
STARTUP ?= $(ROOT)/lib/startup.o
|
|
DEF_ASFLAGS = -msoft-float -mthumb-interwork
|
|
endif
|
|
|
|
##
|
|
# -------------[ config for arm-none-elf- ]------------------------------
|
|
# @param THUMB thumb-mode switch
|
|
# @param ARM arm-mode switch
|
|
# @param EL little-endian switch
|
|
# @param EB big-endian switch
|
|
# @param NEWLIB use toolchain supported newlib
|
|
# @param INIT initial scheme
|
|
##
|
|
ifeq ($(strip $(CROSS)),arm-none-elf-)
|
|
|
|
WALL ?=-Wall
|
|
DEBUGS ?=-g
|
|
THUMB ?=-mthumb
|
|
ARM ?=-marm
|
|
EL ?=-mlittle-endian
|
|
EB ?=-mbig-endian
|
|
MOPTS ?=-fcall-saved-r10 -mthumb-interwork -march=armv5te -msoft-float -ffunction-sections -fdata-sections
|
|
NEWLIB ?= 1
|
|
RUN ?=mdebug 192.168.0.8 9000
|
|
ifeq ($(strip $(NEWLIB)),1)
|
|
CONFIG += -D NEWLIB
|
|
SYS_LIBS ?= gcc c
|
|
SYS_LIBS += $(INIT)
|
|
LD_SCRIPT ?= -Tlink.ld
|
|
LDFLAGS_ADD += -nostartfiles -nodefaultlibs -Wl,--gc-sections $(LD_SCRIPT)
|
|
INIT ?= base_init
|
|
STARTUP ?= $(ROOT)/lib/startup.o -l$(INIT)
|
|
else
|
|
INCLUDE_ADD += -I $(ROOT)/include/ecos
|
|
SYS_LIBS ?=
|
|
LD_SCRIPT = -Tecos.ld # note , application with ecos must use ecos.ld
|
|
LDFLAGS_ADD +=-nostdlib -nodefaultlibs -nostartfiles -Wl,--gc-sections $(LD_SCRIPT)
|
|
endif
|
|
DEF_ASFLAGS = $(DEBUGS) -msoft-float -mthumb-interwork
|
|
CXXFLAGS_ADD = -fno-rtti -fno-exceptions
|
|
endif
|
|
|
|
##
|
|
# -------------[ config for i586-mingw32msvc-]------------------------------
|
|
##
|
|
ifeq ($(strip $(CROSS)),i586-mingw32msvc-)
|
|
WALL ?=-Wall
|
|
DEBUGS ?=-g
|
|
MOPTS ?=-m32
|
|
SYS_LIBS ?= ws2_32 iberty
|
|
LDFLAGS_ADD +=
|
|
RUN ?=
|
|
endif
|
|
|
|
|
|
##
|
|
# @param DEF_INCLUDE: default include path
|
|
# @param DEF_CFLAGS: default compiler options
|
|
# (debugger information/ warning/ little-endian)
|
|
#
|
|
# @param DEF_ASFLAGS: default assembler options (debugger information)
|
|
#
|
|
# @param DEF_LDFLAGS: default linker options ( link with each libary specified
|
|
# in the $(DEP_LIBS) variable and specify the $(PREFIX)/lib and current
|
|
# directory as the library search path
|
|
##
|
|
CROSS_SUP ?= arm-none-eabi-
|
|
ROOT ?= $(PREFIX)/$(CROSS:%-=%)
|
|
STRICT ?= 0
|
|
ifeq ($(strip $(STRICT)),1)
|
|
DEF_CFLAGS = $(DEBUGS) $(MOPTS) $(WALL) -Werror
|
|
else
|
|
DEF_CFLAGS = $(DEBUGS) $(MOPTS) $(WALL)
|
|
endif
|
|
|
|
DEF_INCLUDE = -I include -I $(ROOT)/include $(INCLUDE_ADD)
|
|
|
|
SIM_LIBS ?= $(patsubst $(NAME),,$(patsubst basegltarget,baseglsim,$(DEP_LIBS)))
|
|
|
|
ifeq ($(strip $(DEP_LIBS_AUTO)),1)
|
|
_DEP_LIBS?=$(shell wimac_dep.sh $(NAME) "$(DEP_LIBS)" "$(DEP_LIBS_EX)")
|
|
else
|
|
_DEP_LIBS?=$(DEP_LIBS)
|
|
endif
|
|
|
|
DEP_LIBS_LD = -L. -L $(ROOT)/lib \
|
|
-Xlinker --start-group -Xlinker -l$(NAME) \
|
|
$(foreach _LIB, $(_DEP_LIBS), -Xlinker -l$(_LIB)) \
|
|
$(foreach _LIB, $(SYS_LIBS), -Xlinker -l$(_LIB)) \
|
|
-Xlinker --end-group
|
|
|
|
DEF_LDFLAGS = $(STARTUP) $(LDFLAGS_ADD) $(DEBUGS) $(MOPTS) $(DEP_LIBS_LD)
|
|
|
|
HEXPAD=0
|
|
|
|
#ifeq ($(strip $(NAME)),base)
|
|
#else
|
|
#include $(PREFIX)/.Makefile
|
|
#endif
|