| 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) |