nexus-am/Makefile.compile

55 lines
1.7 KiB
Makefile
Raw Normal View History

2017-05-21 23:22:51 +08:00
objdest = $(addprefix $(DST_DIR)/, $(addsuffix .o, $(basename $(1))))
depdest = $(addprefix $(DST_DIR)/, $(addsuffix .d, $(basename $(1))))
OBJS = $(call objdest, $(SRCS))
DEPS = $(call depdest, $(SRCS))
ARCH_SPLIT = $(subst -, ,$(ARCH))
REAL_ARCH = $(word 1,$(ARCH_SPLIT))
PLATFORM = $(word 2,$(ARCH_SPLIT))
ifeq ($(REAL_ARCH), mips32)
2017-05-21 21:17:11 +08:00
CROSS_COMPILE = mips-linux-gnu-
endif
AS = $(CROSS_COMPILE)gcc
CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
LD = $(CROSS_COMPILE)ld
# Basic compilation flags
2017-05-21 23:22:51 +08:00
INCLUDES = $(addprefix -I, $(INC_DIR)) -I$(AM_HOME)/am/ -I$(AM_HOME)/am/arch/$(ARCH)/include
CFLAGS += -std=gnu99 -O2 -MMD -Wall -Werror -ggdb $(INCLUDES)
CXXFLAGS += -std=c++11 -O2 -MMD -Wall -Werror -ggdb $(INCLUDES)
ASFLAGS += -MMD $(INCLUDES)
2017-05-21 21:17:11 +08:00
# Arch-dependent compilation flags
ifeq ($(REAL_ARCH), mips32)
2017-05-21 21:17:11 +08:00
CXX = $(CROSS_COMPILE)g++-5
CFLAGS_COMMON = -fno-pic -static -fno-strict-aliasing -fno-builtin -fno-stack-protector -fno-delayed-branch -mno-abicalls -march=mips32 -mno-check-zero-division -EL -mno-llsc -mno-imadd -mno-mad
CFLAGS += $(CFLAGS_COMMON)
CXXFLAGS += $(CFLAGS_COMMON) -ffreestanding -fno-rtti -fno-exceptions
ASFLAGS += -march=mips32 -EL -mno-check-zero-division -O0 -mno-abicalls -fno-pic -fno-delayed-branch
2017-05-21 21:17:11 +08:00
endif
ifeq ($(REAL_ARCH), x86)
2017-05-21 21:17:11 +08:00
CFLAGS += -m32 -fno-builtin -fno-stack-protector -fno-omit-frame-pointer
CXXFLAGS += -m32 -fno-builtin -fno-stack-protector -fno-omit-frame-pointer -ffreestanding -fno-rtti -fno-exceptions
ASFLAGS += -m32
endif
2017-05-21 22:10:24 +08:00
# Compilation patterns
$(DST_DIR)/%.o: %.cpp
@mkdir -p $(dir $@)
$(CXX) $(CXXFLAGS) -c -o $@ $<
$(DST_DIR)/%.o: %.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c -o $@ $<
$(DST_DIR)/%.o: %.S
@mkdir -p $(dir $@)
$(AS) $(ASFLAGS) -c -o $@ $<
2017-05-21 21:17:11 +08:00
2017-05-21 23:22:51 +08:00
-include $(DEPS)