############################################################################### # This directory builds object modules that provide utility functions that # programs can use. Not libraries, though -- just programs. The reason # we don't want any library to use object modules in here is that they'll # probably pollute the name space when users link those libraries to their # programs. In fact, if more than one Xmlrpc-c library includes one of these # modules, the libraries will conflict with each other. # # So a utility function that is to be used by libraries (and, optionally, # programs) should go in libxmlrpc_util. libxmlrpc_util is a prerequisite # for many Xmlrpc-c libraries, gets included in a program link only once, # and uses external symbol names that have the "xmlrpc_" prefix to avoid # collision with users' code. # # If we knew a portable way to link multiple object modules into one and # restrict the symbols exported by the whole, we could avoid this mess and # just link utility object modules into each Xmlrpc-c library. ############################################################################## ifeq ($(SRCDIR),) updir = $(shell echo $(dir $(1)) | sed 's/.$$//') LIBDIR := $(call updir,$(CURDIR)) SRCDIR := $(call updir,$(LIBDIR)) BLDDIR := $(SRCDIR) endif SUBDIR := lib/util default: all include $(BLDDIR)/config.mk OMIT_UTILS_RULE = Y include $(SRCDIR)/common.mk # This 'common.mk' dependency makes sure the symlinks get built before # this make file is used for anything. $(SRCDIR)/common.mk: srcdir blddir LIBOBJS = \ casprintf.o \ cmdline_parser.o \ cmdline_parser_cpp.o \ getoptx.o \ string_parser.o \ stripcaseeq.o \ .PHONY: all all: $(LIBOBJS) INCLUDES = -Isrcdir/$(SUBDIR)/include -I$(BLDDIR) %.o:%.c $(CC) -c $(CFLAGS_ALL) $< %.o:%.cpp $(CXX) -c $(CXXFLAGS_ALL) $< include depend.mk .PHONY: clean distclean clean: clean-common distclean: clean distclean-common .PHONY: dep dep: dep-common install: