-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
101 lines (74 loc) · 2.1 KB
/
Makefile
File metadata and controls
101 lines (74 loc) · 2.1 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
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
# Languages
CC := gcc
PERL := perl
COMPILE.c = $(CC) $(DEPFLAGS) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
COMPILE.cc = $(CXX) $(DEPFLAGS) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
POSTCOMPILE = @mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d && touch $@
# Directories
OBJDIR := obj
DEPDIR := dep
BOOSTDIR := /usr/include/boost
# Flags
DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td
OPTFLAGS := -O0
INCLUDEFLAGS := -I../include
PROFFLAGS := #-pg
DEFS +=
CFLAGS := -Wall -g $(PROFFLAGS) $(INCLUDEFLAGS) $(OPTFLAGS) $(DEFS)
CXXFLAGS := $(CFLAGS) -std=c++11
LDFLAGS :=
# Libraries
LDLIBS :=
LOADLIBES :=
# Target names
TARGET :=
LIBTARGET := libTbitMap.a
REV_MAJOR := 0
REV_MINOR := 1
# Directories to build
OBJDIR := obj
DEPDIR := dep
# Source files
LIBSRCS := tbitmap.c mtrie3l.c date.c
SRCS :=
# Object files
LIBOBJS := $(addprefix $(OBJDIR)/,$(LIBSRCS:.c=.o))
OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.c=.o))
$(TARGET): $(OBJS) $(LIBTARGET)
$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) $(PROF) -o $@
$(LIBTARGET): $(LIBOBJS)
$(AR) $(ARFLAGS) $@ $^
ranlib $@
.PHONY: perf
perf:
$(MAKE) -f $(lastword $(MAKEFILE_LIST)) OPTFLAGS=-O3 DEFS=-DNODEBUG
.PHONY: clean
clean:
rm -f $(TARGET) $(TARGET).exe $(LIBTARGET) $(OBJS) $(LIBOBJS) \
$(DEPDIR)/*.d *.bak *.exe.* *~
date.c: tbitmap-revision.c $(filter-out date.c, $(SRCS)) $(wildcard *.h)
sed -e "s/DATE-STRING/`date`/" \
-e "s/MAJOR/$(REV_MAJOR)/" \
-e "s/MINOR/$(REV_MINOR)/" tbitmap-revision.c > date.c
$(OBJDIR)/%.o : %.c
$(OBJDIR)/%.o : %.c $(DEPDIR)/%.d
$(COMPILE.c) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
$(OBJDIR)/%.o : %.cpp
$(OBJDIR)/%.o : %.cpp $(DEPDIR)/%.d
$(COMPILE.cc) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
$(OBJDIR)/%.o : %.cc
$(OBJDIR)/%.o : %.cc $(DEPDIR)/%.d
$(COMPILE.cc) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
$(OBJDIR)/%.o : %.cxx
$(OBJDIR)/%.o : %.cxx $(DEPDIR)/%.d
$(COMPILE.cc) $(OUTPUT_OPTION) $<
$(POSTCOMPILE)
%.i : %.c
$(CC) -E $(CPPFLAGS) $<
$(DEPDIR)/%.d: ;
.PRECIOUS: $(DEPDIR)/%.d
# Include dependency files
include $(wildcard $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRCS))))