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
|
# 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 = ../..
endif
default: all
include $(BUILDDIR)/Makefile.config
CXXFLAGS = $(CXXFLAGS_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
SERVERPROGS_ABYSS = \
xmlrpc_inetd_server \
xmlrpc_loop_server \
xmlrpc_sample_add_server \
LEGACY_CLIENTPROGS = \
meerkat-app-list
CLIENTPROGS = \
xmlrpc_sample_add_client \
sample_add_client_complex \
# Build up PROGS:
PROGS =
ifeq ($(ENABLE_ABYSS_SERVER),yes)
PROGS += $(SERVERPROGS_ABYSS)
endif
ifeq ($(MUST_BUILD_CLIENT),yes)
PROGS += $(CLIENTPROGS) $(LEGACY_CLIENTPROGS)
endif
INCLUDES = $(shell $(XMLRPC_C_CONFIG) c++2 client abyss-server --cflags)
LDADD_SERVER_ABYSS = \
$(shell $(XMLRPC_C_CONFIG) c++2 abyss-server --ldadd)
LDADD_CLIENT = \
$(shell $(XMLRPC_C_CONFIG) c++2 client --ldadd)
LDADD_BASE = \
$(shell $(XMLRPC_C_CONFIG) c++2 --ldadd)
LDADD_LEGACY_CLIENT = \
$(shell $(XMLRPC_C_CONFIG) c++ client --ldadd)
all: $(PROGS)
$(SERVERPROGS_ABYSS):%:%.o
$(CXXLD) -o $@ $(LDFLAGS) $^ $(LDADD_SERVER_ABYSS)
$(LEGACY_CLIENTPROGS):%:%.o
$(CXXLD) -o $@ $(LDFLAGS) $^ $(LDADD_LEGACY_CLIENT)
$(CLIENTPROGS):%:%.o
$(CXXLD) -o $@ $(LDFLAGS) $^ $(LDADD_CLIENT)
%.o:%.cpp
$(CXX) -c $(INCLUDES) $(CXXFLAGS) $<
*.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
.PHONY: distclean
distclean: clean
.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.
|