blob: 40ad4fe7e9cecd2be9ea058e1fea420402ea7ce4 [file] [log] [blame]
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