refactor makefile
This commit is contained in:
parent
b765b7d77c
commit
7544e52856
7
Makefile
7
Makefile
|
@ -5,11 +5,8 @@ AM_HOME ?= $(shell pwd)
|
|||
.PHONY: all clean
|
||||
|
||||
all:
|
||||
@cd am && make ARCH=$(ARCH)
|
||||
@cd libs/klib && make ARCH=$(ARCH)
|
||||
@cd libs/imgui && make ARCH=$(ARCH)
|
||||
@cd am && make
|
||||
|
||||
# TODO: clean everything
|
||||
clean:
|
||||
@cd am && make clean
|
||||
@cd libs/klib && make clean
|
||||
@cd libs/imgui && make clean
|
||||
|
|
|
@ -27,9 +27,7 @@ LINK_FILES += $(addsuffix -$(ARCH).a, $(join \
|
|||
))
|
||||
|
||||
.PHONY: app run clean
|
||||
app: $(OBJS)
|
||||
@cd $(AM_HOME) && make ARCH=$(ARCH)
|
||||
@echo $(LINK_FILES)
|
||||
app: $(OBJS) am $(LIBS)
|
||||
@$(AM_HOME)/am/arch/$(ARCH)/img/build $(BINARY) $(LINK_FILES)
|
||||
run: app
|
||||
@$(AM_HOME)/am/arch/$(ARCH)/img/run $(BINARY)
|
||||
|
|
|
@ -1,9 +1,4 @@
|
|||
objdest = $(addprefix $(DST_DIR)/, $(addsuffix .o, $(basename $(1))))
|
||||
depdest = $(addprefix $(DST_DIR)/, $(addsuffix .d, $(basename $(1))))
|
||||
|
||||
OBJS = $(call objdest, $(SRCS))
|
||||
DEPS = $(call depdest, $(SRCS))
|
||||
|
||||
# Compilation flags
|
||||
ARCH_SPLIT = $(subst -, ,$(ARCH))
|
||||
REAL_ARCH = $(word 1,$(ARCH_SPLIT))
|
||||
PLATFORM = $(word 2,$(ARCH_SPLIT))
|
||||
|
@ -17,13 +12,12 @@ CC = $(CROSS_COMPILE)gcc
|
|||
CXX = $(CROSS_COMPILE)g++
|
||||
LD = $(CROSS_COMPILE)ld
|
||||
|
||||
# Basic compilation flags
|
||||
INCLUDES = $(addprefix -I, $(INC_DIR)) -I$(AM_HOME)/am/ -I$(AM_HOME)/am/arch/$(ARCH)/include
|
||||
INCLUDES = $(addprefix -I, $(INC_DIR)) -I$(AM_HOME)/am/
|
||||
INCLUDES += -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)
|
||||
ASFLAGS += -MMD $(INCLUDES)
|
||||
|
||||
# Arch-dependent compilation flags
|
||||
ifeq ($(REAL_ARCH), mips32)
|
||||
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
|
||||
|
@ -38,17 +32,27 @@ CXXFLAGS += -m32 -fno-builtin -fno-stack-protector -fno-omit-frame-pointer -ffre
|
|||
ASFLAGS += -m32
|
||||
endif
|
||||
|
||||
# Files to be compiled
|
||||
OBJS = $(addprefix $(DST_DIR)/, $(addsuffix .o, $(basename $(SRCS))))
|
||||
|
||||
# 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 $@ $<
|
||||
|
||||
# Depencies
|
||||
DEPS = $(addprefix $(DST_DIR)/, $(addsuffix .d, $(basename $(SRCS))))
|
||||
-include $(DEPS)
|
||||
|
||||
# Dependent AM and libraries
|
||||
.PHONY: $(LIBS) am
|
||||
am:
|
||||
cd $(AM_HOME) && make
|
||||
$(LIBS): %:
|
||||
cd $(AM_HOME)/libs/$* && make
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
NAME = guitest
|
||||
SRCS = guitest-am.cpp
|
||||
SRCS = guitest.cpp
|
||||
LIBS = klib imgui
|
||||
include $(AM_HOME)/Makefile.app
|
||||
|
|
Loading…
Reference in New Issue