-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
66 lines (49 loc) · 1.83 KB
/
Makefile
File metadata and controls
66 lines (49 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
TARGET=platform
EXE = $(TARGET).x
SRCS := main.cpp
OBJS := $(SRCS:.cpp=.o)
COMPONENTS := mips memory bus mmu irqmp gptimer apbuart
export INC_DIR := -I. `pkg-config --cflags systemc` `pkg-config --cflags archc` `pkg-config --cflags tlm` \
$(foreach c, $(COMPONENTS), -I $(c))
export LIB_DIR := -L. `pkg-config --libs systemc` \
$(foreach c, $(COMPONENTS), -L $(c) -l$(c))
export LIB_SYSTEMC := `pkg-config --libs systemc`
export LIB_ARCHC := `pkg-config --libs archc`
export LIBS := $(LIB_SYSTEMC) $(LIB_DIR) $(LIB_ARCHC)
export OTHER := -std=c++11 -DAC_GUEST_BIG_ENDIAN -Wno-deprecated
export CFLAGS:=-g -O2 $(OTHER)
export CC:=g++
all:
for c in $(COMPONENTS); do echo " => Making" $$c ...; \
cd $$c; $(MAKE); cd ..; done
echo " => Making platform ..."
$(MAKE) $(EXE)
clean:
for c in $(COMPONENTS); do echo " => Cleaning" $$c ...; \
cd $$c; $(MAKE) clean; cd ..; done
echo " => Cleaning platform ..."
rm -f $(OBJS) $(EXE) *~ *.o
#------------------------------------------------------
.SILENT:
#------------------------------------------------------
.SUFFIXES: .cc .cpp .o .x
#------------------------------------------------------
$(EXE): $(OBJS) $(LIBFILES)
$(CC) $(CFLAGS) $(INC_DIR) -o $(EXE) $(OBJS) $(LIBS)
#------------------------------------------------------
main.o:
$(CC) $(CFLAGS) $(INC_DIR) -c main.cpp
#------------------------------------------------------
#all: $(EXE)
#------------------------------------------------------
run: $(EXE)
./$(EXE) -- sw/hello_custom.elf
#------------------------------------------------------
#------------------------------------------------------
distclean: clean
#------------------------------------------------------
.cpp.o:
$(CC) $(CFLAGS) $(INC_DIR) -c $<
#------------------------------------------------------
.cc.o:
$(CC) $(CFLAGS) $(INC_DIR) -c $<