Menu

[r1498]: / advanced / examples / cpp / Makefile  Maximize  Restore  History

Download this file

115 lines (79 with data), 2.7 kB

  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
# 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),)
SRCDIR = $(CURDIR)/../..
BLDDIR = $(SRCDIR)
endif
SUBDIR=examples/cpp
include $(BLDDIR)/config.mk
default: all
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 = $(BLDDIR)/xmlrpc-c-config.test
SERVERPROGS_ABYSS = \
xmlrpc_inetd_server \
xmlrpc_loop_server \
xmlrpc_sample_add_server \
CLIENTPROGS = \
xmlrpc_sample_add_client \
sample_add_client_complex \
asynch_client \
# Build up PROGS:
PROGS =
ifeq ($(ENABLE_ABYSS_SERVER),yes)
PROGS += $(SERVERPROGS_ABYSS)
endif
ifeq ($(MUST_BUILD_CLIENT),yes)
PROGS += $(CLIENTPROGS)
endif
PROGS += pstream_inetd_server
ifeq ($(MUST_BUILD_CLIENT),yes)
PROGS += pstream_client
endif
INCLUDES = -I. $(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)
all: $(PROGS)
$(SERVERPROGS_ABYSS):%:%.o
$(CXXLD) -o $@ $^ $(LDADD_SERVER_ABYSS) $(LDFLAGS)
$(CLIENTPROGS):%:%.o
$(CXXLD) -o $@ $^ $(LDADD_CLIENT) $(LDFLAGS)
LDADD_PSTREAM_CLIENT = \
$(shell $(XMLRPC_C_CONFIG) c++2 client --ldadd)
pstream_client:%:%.o
$(CXXLD) -o $@ $^ $(LDADD_PSTREAM_CLIENT) $(LDFLAGS)
LDADD_PSTREAM_SERVER = \
$(shell $(XMLRPC_C_CONFIG) c++2 pstream-server --ldadd)
pstream_inetd_server:%:%.o
$(CXXLD) -o $@ $^ $(LDADD_PSTREAM_SERVER) $(LDFLAGS)
OBJECTS = $(PROGS:%=%.o)
$(OBJECTS):%.o:%.cpp
$(CXX) -c $(INCLUDES) $(CXXFLAGS) $<
# See example/Makefile for an explanation of config.h and xmlrpc_amconfig.h
$(OBJECTS): config.h xmlrpc_amconfig.h
config.h:
$(LN_S) $(BLDDIR)/xmlrpc_config.h $@
xmlrpc_amconfig.h:
$(LN_S) $(BLDDIR)/$@ .
include $(SRCDIR)/common.mk
.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.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.