]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/thrift/lib/d/Makefile.am
buildsys: switch source download to quincy
[ceph.git] / ceph / src / jaegertracing / thrift / lib / d / Makefile.am
1 #
2 # Licensed to the Apache Software Foundation (ASF) under one
3 # or more contributor license agreements. See the NOTICE file
4 # distributed with this work for additional information
5 # regarding copyright ownership. The ASF licenses this file
6 # to you under the Apache License, Version 2.0 (the
7 # "License"); you may not use this file except in compliance
8 # with the License. You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing,
13 # software distributed under the License is distributed on an
14 # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 # KIND, either express or implied. See the License for the
16 # specific language governing permissions and limitations
17 # under the License.
18 #
19
20 AUTOMAKE_OPTIONS = serial-tests
21
22 SUBDIRS = .
23
24 if WITH_TESTS
25 SUBDIRS += test
26 endif
27
28 #
29 # Enumeration of all the public and private modules.
30 #
31 # We unconditionally install all of them, even if libevent or OpenSSL are
32 # not available, but build the respective libraries only if the Deimos headers
33 # could be found.
34 #
35 d_thriftmodules = $(addprefix thrift/, base)
36 d_thriftdir = $(D_IMPORT_PREFIX)/thrift
37 d_thrift_DATA = $(addprefix src/, $(addsuffix .d, $(d_thriftmodules)))
38
39 d_asyncmodules = $(addprefix thrift/async/, base libevent socket ssl)
40 d_asyncdir = $(d_thriftdir)/async
41 d_async_DATA = $(addprefix src/, $(addsuffix .d, $(d_asyncmodules)))
42
43 d_codegenmodules = $(addprefix thrift/codegen/, async_client \
44 async_client_pool base client client_pool processor)
45 #d_codegenmodules = $(addprefix thrift/codegen/, async_client \
46 # async_client_pool base client client_pool idlgen processor)
47
48 d_codegendir = $(d_thriftdir)/codegen
49 d_codegen_DATA = $(addprefix src/, $(addsuffix .d, $(d_codegenmodules)))
50
51 d_protocolmodules = $(addprefix thrift/protocol/, base binary compact json \
52 processor)
53 d_protocoldir = $(d_thriftdir)/protocol
54 d_protocol_DATA = $(addprefix src/, $(addsuffix .d, $(d_protocolmodules)))
55
56 d_servermodules = $(addprefix thrift/server/, base simple nonblocking \
57 taskpool threaded)
58 d_serverdir = $(d_thriftdir)/server
59 d_server_DATA = $(addprefix src/, $(addsuffix .d, $(d_servermodules)))
60
61 d_servertransportmodules = $(addprefix thrift/server/transport/, base socket ssl)
62 d_servertransportdir = $(d_thriftdir)/server/transport
63 d_servertransport_DATA = $(addprefix src/, $(addsuffix .d, \
64 $(d_servertransportmodules)))
65
66 d_transportmodules = $(addprefix thrift/transport/, base buffered file \
67 framed http memory piped range socket ssl zlib)
68 d_transportdir = $(d_thriftdir)/transport
69 d_transport_DATA = $(addprefix src/, $(addsuffix .d, $(d_transportmodules)))
70
71 d_utilmodules = $(addprefix thrift/util/, awaitable cancellation future \
72 hashset)
73 d_utildir = $(d_thriftdir)/util
74 d_util_DATA = $(addprefix src/, $(addsuffix .d, $(d_utilmodules)))
75
76 d_internalmodules = $(addprefix thrift/internal/, algorithm codegen ctfe \
77 endian resource_pool socket ssl ssl_bio traits)
78 d_internaldir = $(d_thriftdir)/internal
79 d_internal_DATA = $(addprefix src/, $(addsuffix .d, $(d_internalmodules)))
80
81 d_testmodules = $(addprefix thrift/internal/test/, protocol server)
82 d_testdir = $(d_internaldir)/test
83 d_test_DATA = $(addprefix src/, $(addsuffix .d, $(d_testmodules)))
84
85 d_publicmodules = $(d_thriftmodules) $(d_asyncmodules) \
86 $(d_codegenmodules) $(d_protocolmodules) $(d_servermodules) \
87 $(d_servertransportmodules) $(d_transportmodules) $(d_utilmodules)
88 d_publicsources = $(addprefix src/, $(addsuffix .d, $(d_publicmodules)))
89
90 d_modules = $(d_publicmodules) $(d_internalmodules) $(d_testmodules)
91
92 # List modules with external dependencies and remove them from the main list
93 d_libevent_dependent_modules = thrift/async/libevent thrift/server/nonblocking
94 d_openssl_dependent_modules = thrift/async/ssl thrift/internal/ssl \
95 thrift/internal/ssl_bio thrift/transport/ssl thrift/server/transport/ssl
96 d_main_modules = $(filter-out $(d_libevent_dependent_modules) \
97 $(d_openssl_dependent_modules),$(d_modules))
98
99
100 d_lib_flags = -w -wi -Isrc -lib
101 all_targets =
102
103 #
104 # libevent-dependent modules.
105 #
106 if HAVE_DEIMOS_EVENT2
107 $(D_EVENT_LIB_NAME): $(addprefix src/, $(addsuffix .d, $(d_libevent_dependent_modules)))
108 $(DMD) -of$(D_EVENT_LIB_NAME) $(d_lib_flags) $^
109 all_targets += $(D_EVENT_LIB_NAME)
110 endif
111
112 #
113 # OpenSSL-dependent modules.
114 #
115 if HAVE_DEIMOS_OPENSSL
116 $(D_SSL_LIB_NAME): $(addprefix src/, $(addsuffix .d, $(d_openssl_dependent_modules)))
117 $(DMD) -of$(D_SSL_LIB_NAME) $(d_lib_flags) $^
118 all_targets += $(D_SSL_LIB_NAME)
119 endif
120
121 #
122 # Main library target.
123 #
124 $(D_LIB_NAME): $(addprefix src/, $(addsuffix .d, $(d_main_modules)))
125 $(DMD) -of$(D_LIB_NAME) $(d_lib_flags) $^
126 all_targets += $(D_LIB_NAME)
127
128
129 #
130 # Documentation target (requires Dil).
131 #
132 docs: $(d_publicsources) src/thrift/index.d
133 dil ddoc docs -hl --kandil $^
134
135
136 #
137 # Hook custom library targets into the automake all/install targets.
138 #
139 all-local: $(all_targets)
140
141 install-exec-local:
142 $(INSTALL_PROGRAM) $(all_targets) $(DESTDIR)$(libdir)
143
144 clean-local:
145 $(RM) -r docs
146 $(RM) $(D_LIB_NAME)
147 $(RM) $(D_EVENT_LIB_NAME)
148 $(RM) $(D_SSL_LIB_NAME)
149 $(RM) -r test/gen-d
150 $(RM) -r unittest
151
152
153 #
154 # Unit tests (built both in debug and release mode).
155 #
156 d_test_flags = -unittest -w -wi -I$(top_srcdir)/lib/d/src
157
158 # There just must be some way to reassign a variable without warnings in
159 # Automake...
160 d_test_modules__ = $(d_modules)
161
162 if WITH_D_EVENT_TESTS
163 d_test_flags += $(DMD_LIBEVENT_FLAGS)
164 d_test_modules_ = $(d_test_modules__)
165 else
166 d_test_modules_ = $(filter-out $(d_libevent_dependent_modules), $(d_test_modules__))
167 endif
168
169 if WITH_D_SSL_TESTS
170 d_test_flags += $(DMD_OPENSSL_FLAGS)
171 d_test_modules = $(d_test_modules_)
172 else
173 d_test_modules = $(filter-out $(d_openssl_dependent_modules), $(d_test_modules_))
174 endif
175
176 unittest/emptymain.d: unittest/.directory
177 @echo 'void main(){}' >$@
178
179 unittest/.directory:
180 mkdir -p unittest || exists unittest
181 touch $@
182
183 unittest/debug/%: src/%.d $(all_targets) unittest/emptymain.d
184 $(DMD) -g -of$(subst /,$(DMD_OF_DIRSEP),$@) $(d_test_flags) $^
185
186 unittest/release/%: src/%.d $(all_targets) unittest/emptymain.d
187 $(DMD) -O -release -of$(subst /,$(DMD_OF_DIRSEP),$@) $(d_test_flags) $^
188
189 TESTS = $(addprefix unittest/debug/, $(d_test_modules)) \
190 $(addprefix unittest/release/, $(d_test_modules))
191
192 precross: all-local
193 $(MAKE) -C test precross
194
195 EXTRA_DIST = \
196 src \
197 test \
198 README.md