nexus-am/Makefile.compile

51 lines
1.7 KiB
Makefile
Raw Permalink Normal View History

2019-03-22 00:32:08 +08:00
$(shell mkdir -p $(DST_DIR))
2017-06-19 21:24:34 +08:00
2019-03-22 00:32:08 +08:00
OBJS = $(addprefix $(DST_DIR)/, $(addsuffix .o, $(basename $(SRCS))))
AS = $(CROSS_COMPILE)gcc
CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
LD = $(CROSS_COMPILE)ld
2022-04-20 13:31:02 +08:00
AR = $(CROSS_COMPILE)ar
2019-03-22 00:32:08 +08:00
OBJDUMP = $(CROSS_COMPILE)objdump
OBJCOPY = $(CROSS_COMPILE)objcopy
READELF = $(CROSS_COMPILE)readelf
INCLUDES += $(addprefix -I, $(INC_DIR)) -I$(AM_HOME)/am/
INCLUDES += -I$(AM_HOME)/am/include
CC_OPT ?= -O2
CFLAGS += $(CC_OPT) -MMD -Wall -Werror -ggdb $(INCLUDES) \
-D__ISA__=\"$(ISA)\" -D__ISA_$(shell echo $(ISA) | tr a-z A-Z)__ \
-D__PLATFORM__=\"$(PLATFORM)\" -D__PLATFORM_$(shell echo $(PLATFORM) | tr a-z A-Z)__ \
2019-03-22 18:23:23 +08:00
-D__ARCH__=$(ARCH) -D__ARCH_$(shell echo $(ARCH) | tr a-z A-Z | tr - _) \
-DARCH_H=\"arch/$(ARCH).h\" \
-fno-asynchronous-unwind-tables -fno-builtin -fno-stack-protector \
-Wno-main
2019-06-14 03:04:24 +08:00
CXXFLAGS += $(CFLAGS) -ffreestanding -fno-rtti -fno-exceptions
ASFLAGS += -MMD $(INCLUDES)
2018-10-12 10:31:37 +08:00
2019-06-14 03:04:24 +08:00
## Compliation rule for .c -> .o (using gcc)
2017-05-21 22:10:24 +08:00
$(DST_DIR)/%.o: %.c
@mkdir -p $(dir $@) && echo + CC $<
@$(CC) -std=gnu11 $(CFLAGS) -c -o $@ $(realpath $<)
2019-03-22 00:32:08 +08:00
2019-06-14 03:04:24 +08:00
## Compliation rule for .cpp -> .o (using g++)
$(DST_DIR)/%.o: %.cpp
@mkdir -p $(dir $@) && echo + CXX $<
2019-06-14 03:04:24 +08:00
@$(CXX) -std=c++11 $(CXXFLAGS) -c -o $@ $(realpath $<)
2019-03-22 00:32:08 +08:00
2019-06-14 03:04:24 +08:00
## Compliation rule for .S -> .o (using as)
2017-05-21 22:10:24 +08:00
$(DST_DIR)/%.o: %.S
@mkdir -p $(dir $@) && echo + AS $<
2019-06-14 03:04:24 +08:00
@$(AS) $(ASFLAGS) -c -o $@ $(realpath $<)
2017-05-21 21:17:11 +08:00
2019-06-14 03:04:24 +08:00
## Paste in dependencies (gcc generated .d) here
2019-03-22 00:32:08 +08:00
-include $(addprefix $(DST_DIR)/, $(addsuffix .d, $(basename $(SRCS))))
2017-06-02 20:40:03 +08:00
2019-06-14 03:04:24 +08:00
## Compilation rules for libraries
2017-06-02 20:40:03 +08:00
am:
2019-02-17 20:12:19 +08:00
@$(MAKE) -s -C $(AM_HOME)
2019-03-22 00:32:08 +08:00
2017-08-12 15:55:44 +08:00
$(sort $(LIBS)): %:
2019-02-17 20:12:19 +08:00
@$(MAKE) -s -C $(AM_HOME)/libs/$*
2019-03-22 00:32:08 +08:00
.PHONY: $(LIBS) am