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
|
# 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.
|