2 SRCDIR := $(CURDIR)/../..
5 # BLDDIR is for use in places where a symbolic link won't work.
6 # BUILDDIR is for places in Makefile.common that can use the 'blddir'
7 # symbolic link (but in directories that don't, like this one, have
8 # blddir, these places use something else -- hence the variable).
13 include $(BLDDIR)/Makefile.config
17 # libxmlrpc_cpp is the legacy C++ wrapper library. The others are the
18 # more elaborate replacements.
20 TARGET_LIBRARY_NAMES := \
24 libxmlrpc_server_abyss++ \
26 ifeq ($(MUST_BUILD_CLIENT),yes)
27 TARGET_LIBRARY_NAMES += libxmlrpc_client++
30 STATIC_LIBRARIES_TO_INSTALL = $(TARGET_STATIC_LIBRARIES)
32 SHARED_LIBS_TO_BUILD := $(TARGET_LIBRARY_NAMES)
33 SHARED_LIBS_TO_INSTALL := $(TARGET_LIBRARY_NAMES)
35 # INCLUDES and DEP_SOURCES are used by dep-common target
36 INCLUDES = $(BASIC_INCLUDES) $(CLIENT_INCLUDES) $(LIBXML_INCLUDES) \
37 $(SERVER_INCLUDES) $(SERVER_ABYSS_INCLUDES) $(TRANSPORT_INCLUDES)
40 WININET_TRANSPORT_DIR = srcdir/lib/wininet_transport
41 CURL_TRANSPORT_DIR = srcdir/lib/curl_transport
42 LIBWWW_TRANSPORT_DIR = srcdir/lib/libwww_transport
44 ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
45 LIBXML_INCLUDES = $(LIBXML2_CFLAGS)
47 LIBXML_INCLUDES = -Isrcdir/lib/expat/xmlparse
61 LIBXMLRPC_SERVERPP_OBJS = registry.o
62 LIBXMLRPC_SERVER_ABYSSPP_OBJS = server_abyss.o
63 LIBXMLRPC_CLIENTPP_OBJS = client.o client_simple.o curl.o libwww.o wininet.o
67 $(LIBXMLRPCCPP_OBJS) \
68 $(LIBXMLRPC_SERVERPP_OBJS) \
69 $(LIBXMLRPC_SERVER_ABYSSPP_OBJS) \
70 $(LIBXMLRPC_CLIENTPP_OBJS)
72 include $(SRCDIR)/Makefile.common
74 # This 'Makefile.common' dependency makes sure the symlinks get built before
75 # this make file is used for anything.
77 $(SRCDIR)/Makefile.common: srcdir blddir
79 TRANSPORT_INCLUDES = \
80 -I$(WININET_TRANSPORT_DIR) \
81 -I$(CURL_TRANSPORT_DIR) \
82 -I$(LIBWWW_TRANSPORT_DIR) \
84 BASIC_INCLUDES = -Isrcdir/include -Iblddir -Isrcdir \
85 -Isrcdir/lib/util/include
87 ifeq ($(SHARED_LIB_TYPE),unix)
91 ifeq ($(SHARED_LIB_TYPE),irix)
95 ifeq ($(SHARED_LIB_TYPE),dll)
99 ifeq ($(SHARED_LIB_TYPE),dylib)
103 ifneq ($(SHARED_LIB_TYPE),NONE)
104 TARGET_SHARED_LIBRARIES = $(TARGET_LIBRARY_NAMES:%=%.$(SHLIB_SUFFIX))
107 TARGET_STATIC_LIBRARIES = $(TARGET_LIBRARY_NAMES:%=%.a)
109 TARGET_LIBRARIES = $(TARGET_STATIC_LIBRARIES) $(ALL_SHARED_LIBRARIES)
111 all: $(TARGET_LIBRARIES)
113 libxmlrpc_cpp.a: XmlRpcCpp.o
118 libxmlrpc++.a: $(LIBXMLRPCPP_OBJS)
123 libxmlrpc_server++.a: $(LIBXMLRPC_SERVERPP_OBJS)
128 libxmlrpc_server_abyss++.a: $(LIBXMLRPC_SERVER_ABYSSPP_OBJS)
133 libxmlrpc_client++.a: $(LIBXMLRPC_CLIENTPP_OBJS)
138 #-----------------------------------------------------------------------------
139 # RULES TO COMPILE OBJECT MODULES FOR LIBRARIES
140 #-----------------------------------------------------------------------------
142 CXXFLAGS = $(CXXFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD)
144 XmlRpcCpp.o:%.o:%.cpp
145 $(CXX) -c $(BASIC_INCLUDES) $(CXXFLAGS) $<
147 $(LIBXMLRPCPP_OBJS):%.o:%.cpp
148 $(CXX) -c $(BASIC_INCLUDES) $(CXXFLAGS) $<
150 SERVER_INCLUDES = $(BASIC_INCLUDES) $(LIBXML_INCLUDES)
152 $(LIBXMLRPC_SERVERPP_OBJS):%.o:%.cpp
153 $(CXX) -c $(SERVER_INCLUDES) $(CXXFLAGS) $<
155 SERVER_ABYSS_INCLUDES = $(SERVER_INCLUDES) -Isrcdir/lib/abyss/src
157 $(LIBXMLRPC_SERVER_ABYSSPP_OBJS):%.o:%.cpp
158 $(CXX) -c $(SERVER_ABYSS_INCLUDES) $(CXXFLAGS) $<
160 CLIENT_INCLUDES = $(BASIC_INCLUDES) $(LIBXML_INCLUDES) $(TRANSPORT_INCLUDES)
162 $(LIBXMLRPC_CLIENTPP_OBJS):%.o:%.cpp
163 $(CXX) -c $(CLIENT_INCLUDES) $(CXXFLAGS) $<
165 client.o curl.o libwww.o wininet.o: $(BUILDDIR)/transport_config.h
167 #-----------------------------------------------------------------------------
168 # MISCELLANEOUS RULES
169 #-----------------------------------------------------------------------------
172 $(MAKE) -C test runtests
175 install: install-common
177 .PHONY: clean clean-local distclean distclean-local
178 clean: clean-common clean-local
180 $(MAKE) -C test clean
182 distclean: clean distclean-local distclean-common
185 $(MAKE) -C test distclean
188 dep: dep-common $(BUILDDIR)/transport_config.h
190 include Makefile.depend