-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (56 loc) · 1.41 KB
/
Copy pathMakefile
File metadata and controls
68 lines (56 loc) · 1.41 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
62
63
64
65
66
67
68
ifdef DEBUG
ifeq ($(DEBUG), 1)
PRE_CFLAGS = -g -O0 -DDEBUG=$(DEBUG)
else
PRE_CFLAGS = -O3
endif
else
PRE_CFLAGS = -O3
endif
CC = g++
LD = g++
AR = ar
CFLAG = -Wall -Wextra $(PRE_CFLAGS)
PROG_NAME = trans
SRC_DIR = ./src
BUILD_DIR = ./build
BIN_DIR = .
CFLAG+=-I$(SRC_DIR)/submodule/eigen
SRC_LIST = main.cpp \
NetworkAnalyzer.cpp \
Plotter.cpp \
TR0Writer.cpp \
Debug.cpp \
Measure.cpp \
PoleZero.cpp \
Simulator.cpp \
StepControl.cpp \
SimResult.cpp \
Circuit.cpp \
MNAStamper.cpp \
MNASymbolStamper.cpp \
NetlistParser.cpp \
LibData.cpp \
Base.cpp \
rpoly.cpp
SRC_LIST_TMP = $(patsubst %,./%,$(SRC_LIST))
SRC_FULL_LIST = $(patsubst %,$(SRC_DIR)/%,$(SRC_LIST))
OBJ_LIST = $(subst .cpp,.o,$(SRC_LIST_TMP))
OBJ_FULL_LIST = $(subst ./,$(BUILD_DIR)/,$(OBJ_LIST))
DEP_FILES = $(OBJ_FULL_LIST:%.o=%.d)
default: $(PROG_NAME)
$(PROG_NAME): src/main.cpp libtrans.a
$(LD) $(OBJ_FULL_LIST) -o $(BIN_DIR)/$@
libtrans.a: $(OBJ_FULL_LIST)
$(AR) rcs $@ $(OBJ_FULL_LIST)
$(BUILD_DIR)/%.d: $(SRC_DIR)/%.cpp
$(eval obj_file := $(subst .d,.o,$@))
@mkdir -p $(@D) || true
$(CC) $(CFLAG) -MM $< -MT $(obj_file) -MF $@
-include $(DEP_FILES)
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp
@mkdir -p $(@D) || true
$(CC) $(CFLAG) -o $(BUILD_DIR)/$*.o -c $<
.PHONY: clean
clean:
-rm -f $(BIN_DIR)/$(PROG_NAME) $(BUILD_DIR)/*