Makfiles: move arch-dependent flags to arch.mk
This commit is contained in:
parent
035b551944
commit
f9ed3158ec
|
@ -1,79 +1,34 @@
|
|||
# Compilation flags
|
||||
|
||||
ifeq ($(ISA), riscv32)
|
||||
CROSS_COMPILE = riscv-none-embed-
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), navy)
|
||||
NAVY_LIBS = libndl libos libc
|
||||
INC_DIR += $(addsuffix /include/, $(addprefix $(NAVY_HOME)/libs/, $(NAVY_LIBS)))
|
||||
endif
|
||||
|
||||
AS = $(CROSS_COMPILE)gcc
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
AS = $(CROSS_COMPILE)gcc
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
CXX = $(CROSS_COMPILE)g++
|
||||
LD = $(CROSS_COMPILE)ld
|
||||
LD = $(CROSS_COMPILE)ld
|
||||
OBJDUMP = $(CROSS_COMPILE)objdump
|
||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||
READELF = $(CROSS_COMPILE)readelf
|
||||
|
||||
ISA_DEF = __ISA_$(shell echo $(ISA) | tr a-z A-Z)__
|
||||
ISA_DEF = __ISA_$(shell echo $(ISA) | tr a-z A-Z)__
|
||||
ARCH_DEF = __ARCH_$(shell echo $(ARCH) | tr a-z A-Z | tr - _)
|
||||
|
||||
INCLUDES = $(addprefix -I, $(INC_DIR)) -I$(AM_HOME)/am/
|
||||
INCLUDES += -I$(AM_HOME)/am/include
|
||||
|
||||
CFLAGS_COMMON += -O2 -MMD -Wall -Werror -ggdb $(INCLUDES) -D$(ISA_DEF) -D__ISA__=\"$(ISA)\" \
|
||||
-D__ARCH__=$(ARCH) -D$(ARCH_DEF) \
|
||||
-fno-asynchronous-unwind-tables -fno-builtin -fno-stack-protector
|
||||
|
||||
CFLAGS += -std=gnu11
|
||||
CXXFLAGS += -std=c++11 -ffreestanding -fno-rtti -fno-exceptions
|
||||
ASFLAGS += -MMD $(INCLUDES) -D$(ISA_DEF)
|
||||
|
||||
ifeq ($(ISA), native)
|
||||
CFLAGS_COMMON += -fpie
|
||||
ASFLAGS += -fpie -pie
|
||||
endif
|
||||
|
||||
ifeq ($(ISA), mips32)
|
||||
CFLAGS_COMMON += -fno-pic -static -fno-delayed-branch -mno-abicalls -march=mips32 -mno-check-zero-division -EL -mno-llsc -mno-imadd -mno-mad
|
||||
ASFLAGS += -march=mips32 -EL -mno-check-zero-division -O0 -mno-abicalls -fno-pic -fno-delayed-branch
|
||||
endif
|
||||
|
||||
ifeq ($(ISA), x86)
|
||||
CFLAGS_COMMON += -m32 -fno-pic -fno-omit-frame-pointer -march=i386 -mstringop-strategy=loop -fno-reorder-functions
|
||||
ASFLAGS += -m32 -fno-pic
|
||||
endif
|
||||
|
||||
ifeq ($(ISA), riscv32)
|
||||
CFLAGS_COMMON += -fno-pic -static -march=rv32im -mabi=ilp32
|
||||
ASFLAGS += -march=rv32im -mabi=ilp32 -O0 -fno-pic
|
||||
endif
|
||||
|
||||
ifeq ($(ISA), am_native)
|
||||
CFLAGS_COMMON += -fno-omit-frame-pointer -fno-reorder-functions
|
||||
endif
|
||||
|
||||
CFLAGS += $(CFLAGS_COMMON)
|
||||
CXXFLAGS += $(CFLAGS_COMMON)
|
||||
CFLAGS += -O2 -MMD -Wall -Werror -ggdb $(INCLUDES) -D$(ISA_DEF) -D__ISA__=\"$(ISA)\" \
|
||||
-D__ARCH__=$(ARCH) -D$(ARCH_DEF) \
|
||||
-fno-asynchronous-unwind-tables -fno-builtin -fno-stack-protector
|
||||
|
||||
# Files to be compiled
|
||||
OBJS = $(addprefix $(DST_DIR)/, $(addsuffix .o, $(basename $(SRCS))))
|
||||
|
||||
# Compilation patterns
|
||||
$(DST_DIR)/%.o: %.cpp
|
||||
@echo + CXX $<
|
||||
@mkdir -p $(dir $@)
|
||||
@$(CXX) $(CXXFLAGS) -c -o $@ $(realpath $<)
|
||||
$(DST_DIR)/%.o: %.c
|
||||
@echo + CC $<
|
||||
@mkdir -p $(dir $@)
|
||||
@$(CC) $(CFLAGS) -c -o $@ $(realpath $<)
|
||||
@mkdir -p $(dir $@) && echo + CC $<
|
||||
@$(CC) -std=gnu11 $(CFLAGS) -c -o $@ $(realpath $<)
|
||||
$(DST_DIR)/%.o: %.cpp
|
||||
@mkdir -p $(dir $@) && echo + CXX $<
|
||||
@$(CXX) -std=c++11 -ffreestanding -fno-rtti -fno-exceptions $(CXXFLAGS) $(CFLAGS) -c -o $@ $(realpath $<)
|
||||
$(DST_DIR)/%.o: %.S
|
||||
@echo + AS $<
|
||||
@mkdir -p $(dir $@)
|
||||
@$(AS) $(ASFLAGS) -c -o $@ $(realpath $<)
|
||||
@mkdir -p $(dir $@) && echo + AS $<
|
||||
@$(AS) -MMD $(INCLUDES) -D$(ISA_DEF) $(ASFLAGS) -c -o $@ $(realpath $<)
|
||||
|
||||
# Depencies
|
||||
DEPS = $(addprefix $(DST_DIR)/, $(addsuffix .d, $(basename $(SRCS))))
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
LDFLAGS := -EL
|
||||
CROSS_COMPILE := mips-linux-gnu-
|
||||
CFLAGS += -fno-pic -static -fno-delayed-branch -mno-abicalls -march=mips32 -mno-check-zero-division -EL -mno-llsc -mno-imadd -mno-mad
|
||||
ASFLAGS += -march=mips32 -EL -mno-check-zero-division -O0 -mno-abicalls -fno-pic -fno-delayed-branch
|
||||
|
||||
include $(AM_HOME)/am/arch/nemu/nemu.mk
|
||||
|
|
|
@ -8,6 +8,9 @@ AM_SRCS := native/trm.c \
|
|||
native/devices/timer.c \
|
||||
native/devices/video.c \
|
||||
|
||||
CFLAGS += -fpie
|
||||
ASFLAGS += -fpie -pie
|
||||
|
||||
image:
|
||||
@echo + LD "->" $(BINARY)
|
||||
@g++ -pie -o $(BINARY) -Wl,--start-group $(LINK_FILES) -Wl,--end-group -lSDL2 -lGL -lrt
|
||||
|
|
|
@ -8,6 +8,10 @@ AM_SRCS := navy/trm.c \
|
|||
NAVY_MAKEFILE = Makefile.navy
|
||||
NAVY_MAKEFILE_CONTENT = "NAME = $(NAME)-am\nAPP = $(BINARY_ABS)\nOBJS = $(LINK_FILES)\nLIBS += libndl\ninclude $${NAVY_HOME}/Makefile.app"
|
||||
|
||||
NAVY_LIBS = libndl libos libc
|
||||
INC_DIR += $(addsuffix /include/, $(addprefix $(NAVY_HOME)/libs/, $(NAVY_LIBS)))
|
||||
|
||||
|
||||
image:
|
||||
@/bin/echo -e $(NAVY_MAKEFILE_CONTENT) > $(NAVY_MAKEFILE)
|
||||
$(MAKE) install -f $(NAVY_MAKEFILE) ISA=$(ISA)
|
||||
|
|
|
@ -1,2 +1,6 @@
|
|||
LDFLAGS := -melf32lriscv
|
||||
CROSS_COMPILE := riscv-none-embed-
|
||||
LDFLAGS += -melf32lriscv
|
||||
CFLAGS += -fno-pic -static -march=rv32im -mabi=ilp32
|
||||
ASFLAGS += -march=rv32im -mabi=ilp32 -O0 -fno-pic
|
||||
|
||||
include $(AM_HOME)/am/arch/nemu/nemu.mk
|
||||
|
|
|
@ -8,8 +8,12 @@ AM_SRCS := $(ISA)/nemu/trm.c \
|
|||
nemu-devices/nemu-video.c \
|
||||
$(ISA)/nemu/boot/start.S
|
||||
|
||||
LDFLAGS := -melf32lriscv
|
||||
LD_SCRIPT := $(AM_HOME)/am/src/$(ISA)/nemu/boot/loader.ld
|
||||
CROSS_COMPILE := riscv-none-embed-
|
||||
CFLAGS += -fno-pic -static -march=rv32im -mabi=ilp32
|
||||
LDFLAGS += -melf32lriscv
|
||||
ASFLAGS += -march=rv32im -mabi=ilp32 -O0 -fno-pic
|
||||
|
||||
LD_SCRIPT := $(AM_HOME)/am/src/$(ISA)/nemu/boot/loader.ld
|
||||
|
||||
GEN_READMEMH := $(NOOP_HOME)/tools/readmemh/verilator-readmemh
|
||||
$(GEN_READMEMH):
|
||||
|
|
|
@ -1,2 +1,5 @@
|
|||
LDFLAGS := -melf_i386
|
||||
CFLAGS += -m32 -fno-pic -fno-omit-frame-pointer -march=i386 -mstringop-strategy=loop -fno-reorder-functions
|
||||
LDFLAGS += -melf_i386
|
||||
ASFLAGS += -m32 -fno-pic
|
||||
|
||||
include $(AM_HOME)/am/arch/nemu/nemu.mk
|
||||
|
|
|
@ -12,10 +12,14 @@ AM_SRCS := x86/qemu/trm.c \
|
|||
x86/qemu/devices/timer.c \
|
||||
x86/qemu/devices/video.c \
|
||||
|
||||
CFLAGS += -m32 -fno-pic -fno-omit-frame-pointer -march=i386
|
||||
LDFLAGS += -melf_i386
|
||||
ASFLAGS += -m32 -fno-pic
|
||||
|
||||
image:
|
||||
@make -s -C $(AM_HOME)/am/src/x86/qemu/boot
|
||||
@echo + LD "->" $(BINARY).o
|
||||
@ld -melf_i386 -Ttext 0x00100000 -o $(BINARY).o --start-group $(LINK_FILES) --end-group
|
||||
@$(LD) $(LDFLAGS) -Ttext 0x00100000 -o $(BINARY).o --start-group $(LINK_FILES) --end-group
|
||||
@echo + CREATE "->" $(BINARY)
|
||||
@cat $(AM_HOME)/am/src/x86/qemu/boot/mbr $(BINARY).o > $(BINARY)
|
||||
|
||||
|
|
Loading…
Reference in New Issue