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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
|
ifeq ($(SRCDIR),)
updir = $(shell echo $(dir $(1)) | sed 's/.$$//')
SRCDIR := $(call updir,$(CURDIR))
BLDDIR := $(SRCDIR)
endif
SUBDIR := include
include $(BLDDIR)/config.mk
default: all
all: xmlrpc-c/config.h
xmlrpc-c/config.h: $(BLDDIR)/$(SUBDIR)/xmlrpc-c
>$@
@echo "Lots of echoes to '$@' suppressed here ..."
@echo '#ifndef XMLRPC_C_CONFIG_H_INCLUDED' >>$@
@echo '#define XMLRPC_C_CONFIG_H_INCLUDED' >>$@
@echo '' >>$@
@echo '/* This file, part of XML-RPC For C/C++, is meant to ' >>$@
@echo ' define characteristics of this particular installation '>>$@
@echo ' that the other <xmlrpc-c/...> header files need in ' >>$@
@echo ' order to compile correctly when #included in Xmlrpc-c' >>$@
@echo ' user code.' >>$@
@echo '' >>$@
@echo ' Those header files #include this one.' >>$@
@echo '' >>$@
@echo ' This file was created by a make rule.' >>$@
@echo '*/' >>$@
@echo '#define XMLRPC_HAVE_WCHAR $(HAVE_WCHAR_H_DEFINE)' >>$@
@echo '#ifdef _WIN32' >>$@
@echo ' /* SOCKET is a type defined by <winsock.h>. Anyone who' >>$@
@echo ' uses XMLRPC_SOCKET on a WIN32 system must #include' >>$@
@echo ' <winsock.h>' >>$@
@echo ' */' >>$@
@echo ' #define XMLRPC_SOCKET SOCKET' >>$@
@echo ' #define XMLRPC_HAVE_TIMEVAL 0' >>$@
@echo ' #define XMLRPC_HAVE_TIMESPEC 0' >>$@
@echo ' #define XMLRPC_HAVE_PTHREAD 0' >>$@
@echo ' #define XMLRPC_HAVE_WINTHREAD 1' >>$@
@echo '#else' >>$@
@echo ' #define XMLRPC_SOCKET int' >>$@
@echo ' #define XMLRPC_HAVE_TIMEVAL 1' >>$@
@echo ' #define XMLRPC_HAVE_TIMESPEC 1' >>$@
@echo ' #define XMLRPC_HAVE_PTHREAD 1' >>$@
@echo ' #define XMLRPC_HAVE_WINTHREAD 0' >>$@
@echo '#endif' >>$@
@echo '' >>$@
@echo '#if defined(_MSC_VER)' >>$@
@echo ' /* Newer MSVC has long long, but MSVC 6 does not */' >>$@
@echo ' #define XMLRPC_INT64 __int64' >>$@
@echo ' #define XMLRPC_PRId64 "I64"' >>$@
@echo ' #define XMLRPC_INT32 __int32' >>$@
@echo '#else' >>$@
@echo ' #define XMLRPC_INT64 long long' >>$@
@echo ' #define XMLRPC_PRId64 "lld"' >>$@
@echo ' #define XMLRPC_INT32 int' >>$@
@echo '#endif' >>$@
@echo '#endif' >>$@
$(BLDDIR)/$(SUBDIR)/xmlrpc-c:
mkdir $@
COMPAT_LINK_CMDS = \
$(LN_S) xmlrpc-c/oldxmlrpc.h xmlrpc.h; \
$(LN_S) xmlrpc-c/server.h xmlrpc_server.h; \
$(LN_S) xmlrpc-c/server_abyss.h xmlrpc_abyss.h; \
$(LN_S) xmlrpc-c/server_w32httpsys.h xmlrpc_server_w32httpsys.h; \
HEADERS_TO_INSTALL = \
xmlrpc-c/config.h \
xmlrpc-c/inttypes.h \
xmlrpc-c/c_util.h \
xmlrpc-c/util.h \
xmlrpc-c/base.h \
xmlrpc-c/json.h \
xmlrpc-c/abyss.h \
xmlrpc-c/abyss_unixsock.h \
xmlrpc-c/abyss_winsock.h \
xmlrpc-c/server.h \
xmlrpc-c/server_abyss.h \
xmlrpc-c/server_w32httpsys.h \
xmlrpc-c/oldxmlrpc.h \
ifeq ($(ENABLE_CPLUSPLUS),yes)
HEADERS_TO_INSTALL += \
xmlrpc-c/oldcppwrapper.hpp \
xmlrpc-c/girerr.hpp \
xmlrpc-c/girmem.hpp \
xmlrpc-c/base.hpp \
xmlrpc-c/base64.hpp \
xmlrpc-c/timeout.hpp \
xmlrpc-c/xml.hpp \
xmlrpc-c/registry.hpp \
xmlrpc-c/server_abyss.hpp \
xmlrpc-c/packetsocket.hpp \
xmlrpc-c/server_pstream.hpp \
xmlrpc-c/AbyssEnvironment.hpp \
xmlrpc-c/AbyssServer.hpp \
xmlrpc-c/abyss_reqhandler_xmlrpc.hpp \
xmlrpc-c/AbyssChanSwitch.hpp \
xmlrpc-c/AbyssChanSwitchUnix.hpp \
COMPAT_LINK_CMDS += $(LN_S) xmlrpc-c/oldcppwrapper.hpp XmlRpcCpp.h;
endif
HEADERINST_PREFIX = /xmlrpc-c
ifeq ($(MUST_BUILD_CLIENT),yes)
HEADERS_TO_INSTALL += \
xmlrpc-c/client.h \
xmlrpc-c/transport.h \
xmlrpc-c/client_global.h \
COMPAT_LINK_CMDS += $(LN_S) xmlrpc-c/client.h xmlrpc_client.h;
ifeq ($(ENABLE_CPLUSPLUS),yes)
HEADERS_TO_INSTALL += \
xmlrpc-c/client.hpp \
xmlrpc-c/client_transport.hpp \
xmlrpc-c/client_simple.hpp \
endif
endif
ifeq ($(ENABLE_CGI_SERVER),yes)
HEADERS_TO_INSTALL += xmlrpc-c/server_cgi.h
COMPAT_LINK_CMDS += $(LN_S) xmlrpc-c/server_cgi.h xmlrpc_cgi.h;
endif
ifeq ($(MUST_BUILD_OPENSSL),Y)
HEADERS_TO_INSTALL += xmlrpc-c/openssl_thread.h
endif
default: all
all:
.PHONY: install-compat-hdr
install-compat-hdr: install-headers
# Install old names of header files for backward compatibility
cd $(DESTDIR)$(HEADERINST_DIR); \
rm -f xmlrpc.h xmlrpc_client.h xmlrpc_server.h xmlrpc_cgi.h \
xmlrpc_server_abyss.h xmlrpc_abyss.h \
xmlrpc_server_w32httpsys.h \
XmlRpcCpp.h; \
$(COMPAT_LINK_CMDS)
.PHONY: uninstall-compat-hdr
uninstall-compat-hdr:
cd $(DESTDIR)$(HEADERINST_DIR); \
rm -f xmlrpc.h xmlrpc_client.h xmlrpc_server.h xmlrpc_cgi.h \
xmlrpc_server_abyss.h xmlrpc_abyss.h \
xmlrpc_server_w32httpsys.h \
XmlRpcCpp.h; \
.PHONY: install
install: install-common install-compat-hdr
.PHONY: uninstall
uninstall: uninstall-common uninstall-compat-hdr
.PHONY: clean
clean:
rm -f xmlrpc-c/config.h
.PHONY: distclean
distclean: clean
.PHONY: check
check:
.PHONY: dep
dep:
OMIT_CONFIG_H_RULE = Y
include $(SRCDIR)/common.mk
|