| ############################################################################### | |
| # This directory builds libxmlrpc_util, which contains utility | |
| # functions that are used by the Xmlprc-c libraries, and also | |
| # directly by Xmlrpc-c programs. Some of them are documented for use | |
| # by Xmlrpc-c users, as facilities of the libxmlrpc library (which | |
| # prerequires libxmlrpc_util). | |
| # | |
| # The functions in this library are characterized by being general purpose | |
| # programming functions, such as one might wish were in the standard C | |
| # library, which have nothing in particular to do with XML-RPC. | |
| ############################################################################### | |
| ifeq ($(SRCDIR),) | |
| updir = $(shell echo $(dir $(1)) | sed 's/.$$//') | |
| LIBDIR := $(call updir,$(CURDIR)) | |
| SRCDIR := $(call updir,$(LIBDIR)) | |
| BLDDIR := $(SRCDIR) | |
| endif | |
| SUBDIR := lib/libutil | |
| include $(BLDDIR)/config.mk | |
| default: all | |
| TARGET_LIBRARY_NAMES := libxmlrpc_util | |
| STATIC_LIBRARIES_TO_INSTALL = libxmlrpc_util.a | |
| SHARED_LIBS_TO_BUILD := libxmlrpc_util | |
| SHARED_LIBS_TO_INSTALL := libxmlrpc_util | |
| ifeq ($(HAVE_PTHREAD),yes) | |
| LOCK_PTHREAD = lock_pthread | |
| else | |
| LOCK_PTHREAD = | |
| endif | |
| ifeq ($(MSVCRT),yes) | |
| LOCK_WINDOWS = lock_windows | |
| else | |
| LOCK_WINDOWS = | |
| endif | |
| TARGET_MODS = \ | |
| asprintf \ | |
| base64 \ | |
| error \ | |
| lock_platform \ | |
| $(LOCK_PTHREAD) \ | |
| $(LOCK_WINDOWS) \ | |
| lock_none \ | |
| make_printable \ | |
| memblock \ | |
| mempool \ | |
| select \ | |
| sleep \ | |
| string_number \ | |
| time \ | |
| utf8 \ | |
| OMIT_LIBXMLRPC_UTIL_RULE=Y | |
| MAJ=4 | |
| # Major number of shared libraries in this directory | |
| include $(SRCDIR)/common.mk | |
| INCLUDES = -I$(BLDDIR) -Isrcdir \ | |
| -I$(BLDDIR)/include -Isrcdir/include -Isrcdir/lib/util/include | |
| UTIL_SHLIB = $(call shlibfn,libxmlrpc_util) | |
| #UTIL_SHLIB is e.g. libxmlrpc_util.so.3.1 | |
| UTIL_SHLIBLE = $(call shliblefn,libxmlrpc_util) | |
| #UTIL_SHLIBLE is e.g. libxmlrpc_util.so | |
| PKGCONFIG_FILES_TO_INSTALL := xmlrpc_util.pc | |
| # This 'common.mk' dependency makes sure the symlinks get built before | |
| # this make file is used for anything. | |
| $(SRCDIR)/common.mk: srcdir blddir | |
| .PHONY: all | |
| all: libxmlrpc_util.a \ | |
| $(TARGET_SHARED_LIBRARIES) \ | |
| $(TARGET_SHARED_LE_LIBS) \ | |
| $(PKGCONFIG_FILES_TO_INSTALL) \ | |
| # Rule for this is in common.mk, courtesy of TARGET_LIBRARY_NAMES: | |
| $(UTIL_SHLIB): $(TARGET_MODS:%=%.osh) | |
| $(UTIL_SHLIB): LIBOBJECTS = $(TARGET_MODS:%=%.osh) | |
| $(UTIL_SHLIB): LIBDEP += $(SOCKET_LIBOPT) $(THREAD_LIBS) | |
| # Rule for this is in common.mk, courtesy of TARGET_LIBRARY_NAMES: | |
| libxmlrpc_util.a: $(TARGET_MODS:%=%.o) | |
| libxmlrpc_util.a: LIBOBJECTS = $(TARGET_MODS:%=%.o) | |
| #----------------------------------------------------------------------------- | |
| # RULES TO COMPILE OBJECT MODULES FOR LIBRARIES | |
| #----------------------------------------------------------------------------- | |
| # Rules to compile object modules from which to build the static and shared | |
| # library are in common.mk, courtesy of TARGET_MODS. | |
| #----------------------------------------------------------------------------- | |
| # RULES TO MAKE PKGCONFIG FILES | |
| # | |
| # (These are files used by the 'pkg-config' program to get information about | |
| # using the libraries we build) | |
| #----------------------------------------------------------------------------- | |
| xmlrpc_util.pc: | |
| rm -f $@ | |
| @echo "Echoes to '$@' suppressed here ..." | |
| @echo "Name: xmlrpc_util" >>$@ | |
| @echo "Description: Xmlrpc-c utility functions library" >>$@ | |
| @echo "Version: $(XMLRPC_VERSION_STRING)" >>$@ | |
| @echo >>$@ | |
| @echo "Requires: " >>$@ | |
| @echo "Libs: -L$(LIBDESTDIR) -lxmlrpc_util" >>$@ | |
| @echo "Cflags: -I$(HEADERDESTDIR)" >>$@ | |
| .PHONY: install | |
| install: install-common | |
| .PHONY: uninstall | |
| uninstall: uninstall-common | |
| .PHONY: clean distclean | |
| clean: clean-common | |
| distclean: clean distclean-common | |
| .PHONY: dep | |
| dep: dep-common | |
| include depend.mk | |