# Since the programs in this directories are examples for the user, this # make file should be as ordinary as possible. It should not rely heavily # on included make files or configuration parameters. It should not use # libtool. Also, we don't try to build or rebuild the libraries on which # these programs depend. ifeq ($(SRCDIR)x,x) SRCDIR = $(CURDIR)/.. BUILDDIR = $(SRCDIR) endif default: all include $(BUILDDIR)/Makefile.config CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_PERSONAL) $(CADD) LDFLAGS = $(LADD) # If this were a real application, working from an installed copy of # Xmlrpc-c, XMLRPC_C_CONFIG would just be 'xmlrpc-c-config'. It would be # found in the user's PATH. XMLRPC_C_CONFIG = $(BUILDDIR)/xmlrpc-c-config.test CLIENTPROGS = \ auth_client \ query-meerkat \ synch_client \ xmlrpc_sample_add_client \ xmlrpc_asynch_client \ SERVERPROGS_CGI = \ xmlrpc_sample_add_server.cgi SERVERPROGS_ABYSS = \ xmlrpc_inetd_server \ xmlrpc_socket_server \ xmlrpc_loop_server \ xmlrpc_sample_add_server \ xmlrpc_server_validatee \ # Build up PROGS: PROGS = ifeq ($(ENABLE_ABYSS_SERVER),yes) PROGS += $(SERVERPROGS_ABYSS) endif PROGS += gen_sample_add_xml ifeq ($(MUST_BUILD_CLIENT),yes) PROGS += $(CLIENTPROGS) endif ifeq ($(ENABLE_CGI_SERVER),yes) PROGS += $(SERVERPROGS_CGI) endif INCLUDES = $(shell $(XMLRPC_C_CONFIG) client abyss-server --cflags) LDADD_CLIENT = \ $(shell $(XMLRPC_C_CONFIG) client --ldadd) LDADD_SERVER_ABYSS = \ $(shell $(XMLRPC_C_CONFIG) abyss-server --ldadd) LDADD_SERVER_CGI = \ $(shell $(XMLRPC_C_CONFIG) cgi-server --ldadd) LDADD_BASE = \ $(shell $(XMLRPC_C_CONFIG) --ldadd) all: $(PROGS) ifeq ($(ENABLE_CPLUSPLUS),yes) all: cpp/all endif .PHONY: cpp/all cpp/all: $(MAKE) -C $(dir $@) $(notdir $@) $(CLIENTPROGS):%:%.o $(CCLD) -o $@ $(LDFLAGS) $^ $(LDADD_CLIENT) $(SERVERPROGS_CGI):%.cgi:%_cgi.o $(CCLD) -o $@ $(LDFLAGS) $^ $(LDADD_SERVER_CGI) $(SERVERPROGS_ABYSS):%:%.o $(CCLD) -o $@ $(LDFLAGS) $^ $(LDADD_SERVER_ABYSS) gen_sample_add_xml:%:%.o $(CCLD) -o $@ $(LDFLAGS) $^ $(LDADD_BASE) %.o:%.c $(CC) -c $(INCLUDES) $(CFLAGS) $< *.c: config.h xmlrpc_amconfig.h config.h: $(LN_S) $(BUILDDIR)/xmlrpc_config.h $@ xmlrpc_amconfig.h: $(LN_S) $(BUILDDIR)/$@ . include $(SRCDIR)/Makefile.common .PHONY: clean clean: clean-common rm -f $(PROGS) config.h xmlrpc_amconfig.h $(MAKE) -C cpp clean .PHONY: distclean distclean: clean BINDIR=$(DESTDIR)$(bindir) FILENAME_GENERATOR = "echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'" INSTCMD = "$(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p \ $(BINDIR)/`$(FILENAME_GENERATOR)`" .PHONY: install install: $(PROGS) @$(NORMAL_INSTALL) $(MKINSTALLDIRS) $(BINDIR) @list='$(bin_PROGRAMS)'; for p in $$list; do \ if test -f $$p; then \ echo "$(INSTCMD)"; $(INSTCMD); \ else :; \ fi; \ done .PHONY: check check: .PHONY: dep depend dep depend: # We don't do dependencies in this directory, because it's supposed to be # an example of what a program outside this package would do, so we can't # go weaving it into the rest of the package. Ergo, a developer must # carefully clean and remake examples as he updates other parts of the tree.