141 lines
3.2 KiB
Makefile
141 lines
3.2 KiB
Makefile
|
#
|
||
|
# RT-Thread Makefile
|
||
|
# CFLAGS for C compiler flags
|
||
|
# CPPFLAGS for C++ compiler flags
|
||
|
# LDFLAGS for ld link flags
|
||
|
# LDLIBS for libraries should be linked
|
||
|
# AFLAGS for assemble flags
|
||
|
#
|
||
|
|
||
|
include $(KERNEL_ROOT)/config.local
|
||
|
include $(KERNEL_ROOT)/config.target
|
||
|
|
||
|
#
|
||
|
# toolchain variables
|
||
|
#
|
||
|
CC = $(PREFIX)gcc
|
||
|
CXX = $(PREFIX)g++
|
||
|
LD = $(PREFIX)ld
|
||
|
AR = $(PREFIX)ar
|
||
|
AS = $(PREFIX)as
|
||
|
RANLIB = $(PREFIX)ranlib
|
||
|
NM = $(PREFIX)nm
|
||
|
OBJCOPY = $(PREFIX)objcopy
|
||
|
OBJDUMP = $(PREFIX)objdump
|
||
|
STRIP = $(PREFIX)strip
|
||
|
SIZE = $(PREFIX)size
|
||
|
RM = rm -rf
|
||
|
MKDIR = mkdir -p
|
||
|
|
||
|
#
|
||
|
# start object and library
|
||
|
#
|
||
|
STARTOBJ = $(KERNEL_ROOT)/lib/start_$(CPU).o
|
||
|
LIBCPU = $(KERNEL_ROOT)/lib/libcpu_$(CPU).a
|
||
|
KERNEL = $(KERNEL_ROOT)/lib/libkernel_$(ARCH).a
|
||
|
LIBBSP = $(KERNEL_ROOT)/lib/libbsp_$(BOARD).a
|
||
|
LIBFINSH = $(KERNEL_ROOT)/lib/libfinsh_$(ARCH).a
|
||
|
LIBEFSL = $(KERNEL_ROOT)/lib/libefsl-fs-vfat.a \
|
||
|
$(KERNEL_ROOT)/lib/libefsl-base.a
|
||
|
LIBRTGUI = $(KERNEL_ROOT)/lib/librtgui_widgets.a \
|
||
|
$(KERNEL_ROOT)/lib/librtgui_server.a \
|
||
|
$(KERNEL_ROOT)/lib/librtgui_common.a \
|
||
|
$(KERNEL_ROOT)/lib/librtgui_app.a
|
||
|
LIBLWIP = $(KERNEL_ROOT)/lib/liblwip_$(ARCH).a
|
||
|
LIBCPP = $(KERNEL_ROOT)/lib/librtt++_$(ARCH).a
|
||
|
LIBMINIC = $(KERNEL_ROOT)/lib/libminilibc_$(ARCH).a
|
||
|
|
||
|
LDLIBS = -lcpu_$(CPU) -lkernel_$(ARCH) -lbsp_$(BOARD)
|
||
|
|
||
|
#
|
||
|
# ld script, according to build type, RAM or ROM
|
||
|
#
|
||
|
ifeq ($(BUILDTYPE), RAM)
|
||
|
LDSCRIPT= $(KERNEL_ROOT)/bsp/$(BOARD)/$(BOARD)_ram.lds
|
||
|
else
|
||
|
LDSCRIPT= $(KERNEL_ROOT)/bsp/$(BOARD)/$(BOARD)_rom.lds
|
||
|
endif
|
||
|
|
||
|
#
|
||
|
# RT-Thread component
|
||
|
#
|
||
|
ifeq ($(RT_USING_FINSH), 1)
|
||
|
CFLAGS += -I$(KERNEL_ROOT)/finsh
|
||
|
LDLIBS += -lfinsh_$(ARCH)
|
||
|
endif
|
||
|
|
||
|
ifeq ($(RT_USING_RTGUI), 1)
|
||
|
CFLAGS += -I$(KERNEL_ROOT)/rtgui/include
|
||
|
LDLIBS += -lrtgui_server -lrtgui_common -lrtgui_widgets -lrtgui_app
|
||
|
endif
|
||
|
|
||
|
ifeq ($(RT_USING_LWIP), 1)
|
||
|
CFLAGS += -I$(KERNEL_ROOT)/net/lwip/src \
|
||
|
-I$(KERNEL_ROOT)/net/lwip/src/include \
|
||
|
-I$(KERNEL_ROOT)/net/lwip/src/include/ipv4 \
|
||
|
-I$(KERNEL_ROOT)/net/lwip/src/arch/include
|
||
|
LDLIBS += -llwip_$(ARCH)
|
||
|
endif
|
||
|
|
||
|
ifeq ($(RT_USING_EFSL), 1)
|
||
|
CFLAGS += -I$(KERNEL_ROOT)/filesystem/efsl/src/fs/vfat/include \
|
||
|
-I$(KERNEL_ROOT)/filesystem/efsl/src/base/include \
|
||
|
-I$(KERNEL_ROOT)/filesystem/efsl/src/include \
|
||
|
-I$(KERNEL_ROOT)/filesystem/efsl/conf
|
||
|
LDLIBS += -lefsl-base -lefsl-fs-vfat
|
||
|
endif
|
||
|
|
||
|
ifeq ($(RT_USING_CPLUSPLUS), 1)
|
||
|
CFLAGS +=
|
||
|
LDLIBS += -lrtt++_$(ARCH)
|
||
|
endif
|
||
|
|
||
|
ifeq ($(RT_USING_NEWLIB), 1)
|
||
|
CFLAGS += -I$(KERNEL_ROOT)/newlib/libc/include
|
||
|
LDLIBS += -lnewlib_$(ARCH)
|
||
|
else
|
||
|
ifeq ($(RT_USING_MINILIBC), 1)
|
||
|
CFLAGS += -I$(KERNEL_ROOT)/libc/minilibc
|
||
|
LDLIBS += -lminilibc_$(ARCH)
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
#
|
||
|
# compiler, assemble and ld link flag
|
||
|
#
|
||
|
CFLAGS += -I$(KERNEL_ROOT)/include -I$(KERNEL_ROOT)/bsp/$(BOARD) -Wall -nostdinc -fno-builtin
|
||
|
|
||
|
ifeq ($(RELEASETYPE), DEBUG)
|
||
|
CFLAGS += -ggdb
|
||
|
AFLAGS += -ggdb
|
||
|
else
|
||
|
CFLAGS += -O2
|
||
|
CFLAGS +=
|
||
|
AFLAGS +=
|
||
|
endif
|
||
|
|
||
|
ifeq ($(BUILDTYPE), RAM)
|
||
|
#AFLAGS +=
|
||
|
#AFLAGS += -x assembler-with-cpp -DTEXT_BASE=$(TEXTBASE)
|
||
|
#AFLAGS += -x assembler-with-cpp
|
||
|
else
|
||
|
#AFLAGS +=
|
||
|
#AFLAGS += -x assembler-with-cpp -DTEXT_BASE=$(TEXTBASE) -D__FLASH_BUILD__
|
||
|
endif
|
||
|
|
||
|
LDFLAGS += -L$(KERNEL_ROOT)/lib --start-group $(LDLIBS) --end-group
|
||
|
|
||
|
CPPFLAGS = $(CFLAGS) -fno-rtti
|
||
|
|
||
|
#
|
||
|
# Common rules
|
||
|
#
|
||
|
.c.o:
|
||
|
$(CC) -c $(CFLAGS) -o $@ $<
|
||
|
|
||
|
.cpp.o:
|
||
|
$(CXX) -c $(CPPFLAGS) -o $@ $<
|
||
|
|
||
|
.S.o:
|
||
|
$(CC) -c $(AFLAGS) -o $@ $<
|