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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
# Makefile for libzeep and a test/sample application using libzeep.
#
# Copyright Maarten L. Hekkelman, UMC St. Radboud 2008-2013.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
#
# You may have to edit the first three defines on top of this
# makefile to match your current installation.
LIBDIR = $(DESTDIR)/usr/lib
INCDIR = $(DESTDIR)/usr/include
MANDIR = $(DESTDIR)/usr/share/man/man3
DOCDIR = $(DESTDIR)/usr/share/doc/libzeep-dev
CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS)
CXXFLAGS += $(shell dpkg-buildflags --get CPPFLAGS)
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
BOOST_LIBS = system thread filesystem regex math_c99
BOOST_LIBS := $(BOOST_LIBS:%=boost_%$(BOOST_LIB_SUFFIX))
LIBS = $(BOOST_LIBS) stdc++ m pthread
LDFLAGS += $(BOOST_LIB_DIR:%=-L%) $(LIBS:%=-l%) -g
VERSION_MAJOR = 3.0
VERSION_MINOR = 2
VERSION = $(VERSION_MAJOR).$(VERSION_MINOR)
DIST_NAME = libzeep-$(VERSION)
SO_NAME = libzeep.so.$(VERSION_MAJOR)
LIB_NAME = $(SO_NAME).$(VERSION_MINOR)
CXX ?= c++
CXXFLAGS += -O2 -I. -fPIC -pthread -shared -std=c++0x
CXXFLAGS += -Wall
LD ?= ld
VPATH += src
OBJECTS = \
obj/doctype.o \
obj/document.o \
obj/exception.o \
obj/node.o \
obj/soap-envelope.o \
obj/parser.o \
obj/request.o \
obj/request_parser.o \
obj/reply.o \
obj/connection.o \
obj/http-server.o \
obj/preforked-http-server.o \
obj/soap-server.o \
obj/unicode_support.o \
obj/webapp.o \
obj/webapp-el.o \
obj/xpath.o \
obj/writer.o
lib: libzeep.so
libzeep.a: $(OBJECTS)
ld -r -o $@ $(OBJECTS)
$(LIB_NAME): $(OBJECTS)
$(CXX) -shared -o $@ -Wl,-soname=$(SO_NAME) $(LDFLAGS) $(OBJECTS)
$(SO_NAME): $(LIB_NAME)
ln -fs $(LIB_NAME) $@
libzeep.so: $(SO_NAME)
ln -fs $(LIB_NAME) $@
# assuming zeep-test is build when install was not done already
zeep-test: zeep-test.cpp libzeep.a
$(CXX) $(BOOST_INC_DIR:%=-I%) -o $@ -I. zeep-test.cpp libzeep.a $(LDFLAGS) -lboost_date_time -lboost_regex
install-libs: libzeep.so
install -d $(LIBDIR)
install $(LIB_NAME) $(LIBDIR)/$(LIB_NAME)
ln -Tfs $(LIB_NAME) $(LIBDIR)/$(SO_NAME)
strip --strip-unneeded $(LIBDIR)/$(LIB_NAME)
install-dev:
install -d $(MANDIR) $(LIBDIR) $(INCDIR)/zeep/xml $(INCDIR)/zeep/http $(INCDIR)/zeep/http/webapp
install zeep/http/connection.hpp $(INCDIR)/zeep/http/connection.hpp
install zeep/http/header.hpp $(INCDIR)/zeep/http/header.hpp
install zeep/http/preforked-server.hpp $(INCDIR)/zeep/http/preforked-server.hpp
install zeep/http/reply.hpp $(INCDIR)/zeep/http/reply.hpp
install zeep/http/request.hpp $(INCDIR)/zeep/http/request.hpp
install zeep/http/request_handler.hpp $(INCDIR)/zeep/http/request_handler.hpp
install zeep/http/request_parser.hpp $(INCDIR)/zeep/http/request_parser.hpp
install zeep/http/server.hpp $(INCDIR)/zeep/http/server.hpp
install zeep/http/webapp.hpp $(INCDIR)/zeep/http/webapp.hpp
install zeep/http/webapp/el.hpp $(INCDIR)/zeep/http/webapp/el.hpp
install zeep/xml/doctype.hpp $(INCDIR)/zeep/xml/doctype.hpp
install zeep/xml/document.hpp $(INCDIR)/zeep/xml/document.hpp
install zeep/xml/node.hpp $(INCDIR)/zeep/xml/node.hpp
install zeep/xml/parser.hpp $(INCDIR)/zeep/xml/parser.hpp
install zeep/xml/serialize.hpp $(INCDIR)/zeep/xml/serialize.hpp
install zeep/xml/unicode_support.hpp $(INCDIR)/zeep/xml/unicode_support.hpp
install zeep/xml/writer.hpp $(INCDIR)/zeep/xml/writer.hpp
install zeep/xml/xpath.hpp $(INCDIR)/zeep/xml/xpath.hpp
install zeep/config.hpp $(INCDIR)/zeep/config.hpp
install zeep/dispatcher.hpp $(INCDIR)/zeep/dispatcher.hpp
install zeep/envelope.hpp $(INCDIR)/zeep/envelope.hpp
install zeep/exception.hpp $(INCDIR)/zeep/exception.hpp
install zeep/server.hpp $(INCDIR)/zeep/server.hpp
install doc/libzeep.3 $(MANDIR)/libzeep.3
for d in . images libzeep zeep zeep/http zeep/http/preforked_server_base zeep/http/el \
zeep/http/el/object zeep/xml zeep/xml/doctype zeep/xml/container zeep/xml/element \
index; do install -d $(DOCDIR)/$$d; install doc/html/$$d/*.* $(DOCDIR)/$$d; done;
ln -Tfs $(LIB_NAME) $(LIBDIR)/libzeep.so
install: install-libs install-dev
dist: lib
rm -rf $(DIST_NAME)
svn export . $(DIST_NAME)
find doc/html | grep -v '.svn' | cpio -pvd $(DIST_NAME)
rm -rf $(DIST_NAME)/tests
tar czf $(DIST_NAME).tgz $(DIST_NAME)
rm -rf $(DIST_NAME)
cp $(DIST_NAME).tgz ../ppa/libzeep_$(VERSION).orig.tar.gz
obj/%.o: %.cpp | obj
$(CXX) -MD -c -o $@ $< $(CXXFLAGS)
obj:
mkdir -p obj
include $(OBJECTS:%.o=%.d)
$(OBJECTS:.o=.d):
clean:
rm -rf obj/* libzeep.a libzeep.so* zeep-test $(DIST_NAME) $(DIST_NAME).tgz
|