rt-thread/bsp/qemu/build/config.mk

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 $@ $<