| AR ?= ar |
| CXX ?= g++ |
| CXXFLAGS += -Wall |
| RANLIB ?= ranlib |
| LIBDIR ?= /usr/lib |
| |
| name = libtinyxml |
| major = @MAJOR_V@ |
| minor = @MINOR_V@ |
| version = $(major).$(minor) |
| |
| src = tinyxml.cpp tinyxmlparser.cpp tinyxmlerror.cpp tinystr.cpp |
| lo = $(addsuffix .lo,$(basename ${src})) |
| o = $(addsuffix .o,$(basename ${src})) |
| |
| lib = so |
| ifeq ($(shell uname),Darwin) |
| lib = dylib |
| endif |
| |
| all: $(name).a $(name).$(lib) |
| |
| %.o: %.cpp |
| $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $< -o $@ |
| |
| $(name).a: $(o) |
| $(AR) rc $(name).a $(o) |
| $(RANLIB) $(name).a |
| |
| %.lo: %.cpp |
| $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -fPIC $< -o $@ |
| |
| $(name).so: $(lo) |
| $(CXX) $(LDFLAGS) -fPIC -shared $(lo) -Wl,-soname,$(name).so.$(major) -o $(name).so.$(version) |
| ln -s $(name).so.$(version) $(name).so.$(major) |
| ln -s $(name).so.$(version) $(name).so |
| |
| $(name).dylib: $(lo) |
| $(CXX) $(LDFLAGS) -fPIC -dynamiclib $(lo) -install_name $(LIBDIR)/$(name).$(major).dylib -o $(name).$(version).dylib |
| ln -s $(name).$(version).dylib $(name).$(major).dylib |
| ln -s $(name).$(version).dylib $(name).dylib |
| |
| clean: |
| -rm -f *.o *.lo *.so* *.a |