blob: 029e7295b88989fcd32c2a4f9b4dbe24df2dde41 (
plain)
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
|
CXXFLAGS+=-std=c++11 -fstrict-aliasing -Wall -Wextra -Wshadow -Wconversion \
-Wpadded -Wstrict-aliasing=2 -Wstrict-overflow=4
SRCDIR=..
LIB=libc++
STATIC=libc++.a
MAJOR=1
MINOR=0
SHEXT?=.so
SHLIB=$(LIB)$(SHEXT).$(MAJOR).$(MINOR)
SONAME=$(LIB)$(SHEXT).$(MAJOR)
SRC=$(wildcard $(SRCDIR)/src/*.cpp)
OBJ=$(SRC:$(SRCDIR)/src/%.cpp=%.o)
SOBJ=$(SRC:$(SRCDIR)/src/%.cpp=%.So)
%.So: $(SRCDIR)/src/%.cpp
$(CXX) -I$(SRCDIR)/include $(CPPFLAGS) $(CXXFLAGS) -fPIC -nostdinc++ -c $< -o $@
%.o: $(SRCDIR)/src/%.cpp
$(CXX) -I$(SRCDIR)/include $(CPPFLAGS) $(CXXFLAGS) -nostdinc++ -c $< -o $@
$(STATIC): $(OBJ)
$(AR) cr $@ $^
static: $(STATIC)
$(SHLIB): $(SOBJ)
$(CXX) -fPIC -nodefaultlibs $(CXXFLAGS) $(LDFLAGS) -shared -Wl,-soname,$(SONAME) -o $@ $^ $(LIBS)
$(SONAME): $(SHLIB)
ln -s $< $@
$(LIB)$(SHEXT): $(SONAME)
ln -s $< $@
shared: $(SHLIB) $(SONAME) $(LIB)$(SHEXT)
|