-
Notifications
You must be signed in to change notification settings - Fork 5
/
Makefile
102 lines (81 loc) · 1.96 KB
/
Makefile
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# Uncomment the following math acceleration flags
# relevant to your target and set the appropriate
# path and flag options
#Super LU
SuperLUroot = $(HOME)/Runjie/Temp/SuperLU_4.3
SUPERLULIB = $(SuperLUroot)/lib/libsuperlu_4.3.a
BLASLIB = -lblas
SLU_HEADER = $(SuperLUroot)/SRC
INCDIR = $(SLU_HEADER)
LIBDIR =
LIBS = -lm $(SUPERLULIB) $(BLASLIB)
EXTRAFLAGS = -Wno-unused-result
CC = gcc
ifeq ($(DEBUG), 1)
OFLAGS = -O0 -ggdb -Wall
else
ifeq ($(DEBUG), 2)
OFLAGS = -O3 -pg -ggdb -Wall
else
OFLAGS = -O3
endif # DEBUG = 2
endif # DEBUG = 1
RM = rm -f
AR = ar qcv
RANLIB = ranlib
OEXT = o
LEXT = a
# Verbosity level [0-3]
ifndef VERBOSE
VERBOSE = 0
endif
ifdef INCDIR
INCDIRFLAG = -I$(INCDIR)
endif
ifdef LIBDIR
LIBDIRFLAG = -L$(LIBDIR)
endif
CFLAGS = $(OFLAGS) $(EXTRAFLAGS) $(INCDIRFLAG) $(LIBDIRFLAG) -DVERBOSE=$(VERBOSE)
# sources, objects, headers and inputs
# Floorplan
FLPSRC = flp.c
FLPOBJ = flp.$(OEXT)
FLPHDR = flp.h
# PDN model
PDNSRC = PDN_sim.c PDN_analyze.c pad.c matrix.c
PDNOBJ = PDN_sim.$(OEXT) PDN_analyze.$(OEXT) pad.$(OEXT) matrix.$(OEXT)
PDNHDR = PDN_sim.h PDN_analyze.h pad.h
# Miscellaneous
MISCSRC = util.c
MISCOBJ = util.$(OEXT)
MISCHDR = util.h
# all objects
OBJ = $(PDNOBJ) $(FLPOBJ) $(MISCOBJ)
# targets
all: voltspot lib
voltspot: voltspot.$(OEXT) $(OBJ)
$(CC) $(CFLAGS) -o voltspot voltspot.$(OEXT) $(OBJ) $(LIBS)
ifdef LIBDIR
@echo
@echo
@echo "...Done. Do not forget to include $(LIBDIR) in your LD_LIBRARY_PATH"
endif
lib: voltspot
$(RM) libvoltspot.$(LEXT)
$(AR) libvoltspot.$(LEXT) $(OBJ)
$(RANLIB) libvoltspot.$(LEXT)
#pull in dependency info for existing .o files
-include $(OBJ:.o=.d)
.c.$(OEXT):
$(CC) $(CFLAGS) -c $*.c
$(CC) -MM $(CFLAGS) $*.c > $*.d
filelist:
@echo $(FLPSRC) $(PDNSRC) $(MISCSRC) \
$(FLPHDR) $(PDNHDR) $(MISCHDR) \
voltspot.h voltspot.c\
Makefile
clean:
$(RM) *.$(OEXT) *.obj *.d core *~ Makefile.bak voltspot libvoltspot.$(LEXT)
$(RM) $(OBJ)
cleano:
$(RM) *.$(OEXT) *.obj