0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-18 16:00:57 +01:00
construct/ircd/Makefile.am

358 lines
10 KiB
Text
Raw Normal View History

AUTOMAKE_OPTIONS = foreign
BUILT_SOURCES =#
CLEANFILES =#
DEFS += \
-DIRCD_UNIT \
###
CXXFLAGS += \
$(EXTRA_CXXFLAGS) \
###
2017-09-30 07:59:11 +02:00
AM_CXXFLAGS = \
2018-12-24 01:56:28 +01:00
-ftls-model=initial-exec \
-include ircd/ircd.pic.h \
2017-09-30 07:59:11 +02:00
###
2016-07-20 20:55:46 +02:00
AM_CPPFLAGS = \
-I$(top_srcdir)/include \
$(EXTRA_CPPFLAGS) \
2017-09-08 11:43:23 +02:00
###
2016-07-20 20:55:46 +02:00
AM_LDFLAGS = \
2019-10-01 04:27:25 +02:00
-version-info 3:2:0 \
2019-02-09 03:24:20 +01:00
-Wl,--no-undefined-version \
-Wl,--weak-unresolved-symbols \
-Wl,--unresolved-symbols=ignore-in-shared-libs \
-Wl,--wrap=pthread_create \
-Wl,--wrap=pthread_join \
-Wl,--wrap=pthread_tryjoin_np \
-Wl,--wrap=pthread_timedjoin_np \
-Wl,--wrap=pthread_clockjoin_np \
-Wl,--wrap=pthread_self \
-Wl,--wrap=pthread_setname_np \
-Wl,-z,nodelete \
-Wl,-z,nodlopen \
-Wl,-z,lazy \
$(PLATFORM_LDFLAGS) \
$(EXTRA_LDFLAGS) \
2017-09-08 11:43:23 +02:00
###
2016-07-20 20:55:46 +02:00
if CLANG
AM_CXXFLAGS += -fno-c++-static-destructors
endif
if LTO
AM_CXXFLAGS += -flto=thin
endif
if LTO
if CLANG
AM_CXXFLAGS += -fstrict-vtable-pointers
AM_CXXFLAGS += -fwhole-program-vtables
endif
endif
if !PROFILE
if CLANG
AM_CXXFLAGS += -fprofile-use
BUILT_SOURCES += default.profdata
CLEANFILES += default.profdata
endif
endif
if PROFILE
if CLANG
AM_CXXFLAGS += -fprofile-generate
AM_LDFLAGS += -Wl,-fprofile-generate
#TODO: XXX
#AM_CXXFLAGS += -fprofile-instr-generate
#AM_CXXFLAGS += -fcoverage-mapping
#AM_LDFLAGS += -Wl,-fprofile-instr-generate
#AM_LDFLAGS += -Wl,-fcoverage-mapping
endif
endif
if MINGW
AM_LDFLAGS += -Wl,--enable-runtime-pseudo-reloc
AM_LDFLAGS += -export-symbols-regex '*'
endif
2019-09-26 05:30:26 +02:00
2019-05-06 22:18:03 +02:00
libircddir = @libdir@
2016-07-20 20:55:46 +02:00
libircd_LTLIBRARIES = libircd.la
2017-08-23 23:39:41 +02:00
libircd_la_LDFLAGS = \
$(AM_LDFLAGS) \
@ROCKSDB_LDFLAGS@ \
@JS_LDFLAGS@ \
2020-06-19 10:04:30 +02:00
@ICU_LDFLAGS@ \
2017-09-08 11:43:23 +02:00
@BOOST_LDFLAGS@ \
@OPENCL_LDFLAGS@ \
@SSL_LDFLAGS@ \
2020-02-12 00:38:27 +01:00
@PBC_LDFLAGS@ \
@CRYPTO_LDFLAGS@ \
@SODIUM_LDFLAGS@ \
2018-02-18 04:48:36 +01:00
@MAGIC_LDFLAGS@ \
@IMAGEMAGICK_LDFLAGS@ \
@PNG_LDFLAGS@ \
@ZSTD_LDFLAGS@ \
@SNAPPY_LDFLAGS@ \
@LZ4_LDFLAGS@ \
@Z_LDFLAGS@ \
@MALLOC_LDFLAGS@ \
2017-09-08 11:43:23 +02:00
###
2017-08-23 23:39:41 +02:00
libircd_la_LIBADD = \
@ROCKSDB_LIBS@ \
@JS_LIBS@ \
2020-06-19 10:04:30 +02:00
@ICU_LIBS@ \
2017-08-23 23:39:41 +02:00
@BOOST_LIBS@ \
2020-02-12 00:38:27 +01:00
@PBC_LIBS@ \
@SSL_LIBS@ \
@CRYPTO_LIBS@ \
@SODIUM_LIBS@ \
2018-02-18 04:48:36 +01:00
@MAGIC_LIBS@ \
@IMAGEMAGICK_LIBS@ \
@ZSTD_LIBS@ \
@SNAPPY_LIBS@ \
@LZ4_LIBS@ \
@Z_LIBS@ \
@MALLOC_LIBS@ \
$(EXTRA_LIBS) \
2017-09-08 11:43:23 +02:00
###
2017-08-23 23:39:41 +02:00
if PROFILE
if CLANG11
#TODO: XXX
libircd_la_LIBADD += /usr/lib/llvm-11/lib/clang/11.0.0/lib/linux/libclang_rt.profile-x86_64.a
endif
endif
2019-09-26 05:30:26 +02:00
#
# Unit list
#
# Since this is a GNU C++ project we assume the non-standard respect for
# the order of this sources list. Static initialization will occur in
# the same order as this list, and destruction in the reverse order.
# Add the most dependent units at the end and the least dependent units
# at the beginning.
#
2019-09-26 05:30:26 +02:00
libircd_la_SOURCES =#
libircd_la_SOURCES += default.profdata
libircd_la_SOURCES += assert.cc
libircd_la_SOURCES += vg.cc
libircd_la_SOURCES += exception.cc
libircd_la_SOURCES += demangle.cc
2019-09-20 07:02:57 +02:00
libircd_la_SOURCES += backtrace.cc
libircd_la_SOURCES += simd.cc
2020-06-18 07:55:56 +02:00
libircd_la_SOURCES += fpe.cc
libircd_la_SOURCES += parse.cc
libircd_la_SOURCES += lex_cast.cc
libircd_la_SOURCES += info.cc
libircd_la_SOURCES += allocator.cc
libircd_la_SOURCES += allocator_gnu.cc
libircd_la_SOURCES += allocator_je.cc
libircd_la_SOURCES += util.cc
libircd_la_SOURCES += rand.cc
libircd_la_SOURCES += fmt.cc
libircd_la_SOURCES += timedate.cc
if ICU
2020-06-19 10:04:30 +02:00
libircd_la_SOURCES += icu.cc
endif
libircd_la_SOURCES += utf.cc
libircd_la_SOURCES += stringops.cc
libircd_la_SOURCES += globular.cc
libircd_la_SOURCES += tokens.cc
libircd_la_SOURCES += b64.cc
libircd_la_SOURCES += b58.cc
libircd_la_SOURCES += crh.cc
libircd_la_SOURCES += json.cc
libircd_la_SOURCES += cbor.cc
libircd_la_SOURCES += conf.cc
libircd_la_SOURCES += stats.cc
libircd_la_SOURCES += logger.cc
libircd_la_SOURCES += ios.cc
libircd_la_SOURCES += run.cc
2019-05-01 23:40:39 +02:00
libircd_la_SOURCES += prof.cc
libircd_la_SOURCES += prof_psi.cc
if LINUX
libircd_la_SOURCES += prof_linux.cc
endif
libircd_la_SOURCES += ctx_x86_64.S
libircd_la_SOURCES += ctx.cc
libircd_la_SOURCES += ctx_eh.cc
libircd_la_SOURCES += ctx_ole.cc
libircd_la_SOURCES += ctx_posix.cc
libircd_la_SOURCES += fs.cc
libircd_la_SOURCES += fs_path.cc
libircd_la_SOURCES += fs_dev.cc
2019-05-01 23:40:39 +02:00
if AIO
libircd_la_SOURCES += fs_aio.cc
endif
if IOU
libircd_la_SOURCES += fs_iou.cc
endif
libircd_la_SOURCES += sys.cc
libircd_la_SOURCES += mods.cc
if LINUX
libircd_la_SOURCES += mods_ldso.cc
endif
libircd_la_SOURCES += exec.cc
if MAGIC
libircd_la_SOURCES += magic.cc
endif
if SODIUM
libircd_la_SOURCES += sodium.cc
endif
if PBC
libircd_la_SOURCES += pbc.cc
endif
if IMAGEMAGICK
libircd_la_SOURCES += magick.cc
endif
libircd_la_SOURCES += png.cc
2021-01-04 11:29:40 +01:00
if OPENCL
libircd_la_SOURCES += cl.cc
endif
2021-03-05 02:03:33 +01:00
libircd_la_SOURCES += gpt.cc
2021-03-30 03:22:42 +02:00
libircd_la_SOURCES += gpt_pipe.cc
if OPENCL
BUILT_SOURCES += gpt_cl.clo
endif
2021-03-05 02:03:33 +01:00
libircd_la_SOURCES += gpt_model.cc
libircd_la_SOURCES += gpt_vocab.cc
libircd_la_SOURCES += openssl.cc
libircd_la_SOURCES += rfc1459.cc
libircd_la_SOURCES += rfc3986.cc
libircd_la_SOURCES += rfc1035.cc
libircd_la_SOURCES += http.cc
libircd_la_SOURCES += http2.cc
libircd_la_SOURCES += db_fixes.cc
libircd_la_SOURCES += db_port.cc
libircd_la_SOURCES += db_allocator.cc
libircd_la_SOURCES += db_env.cc
libircd_la_SOURCES += db_database.cc
libircd_la_SOURCES += db.cc
libircd_la_SOURCES += net.cc
libircd_la_SOURCES += net_addrs.cc
libircd_la_SOURCES += net_dns.cc
libircd_la_SOURCES += net_dns_netdb.cc
libircd_la_SOURCES += net_dns_cache.cc
libircd_la_SOURCES += net_dns_resolver.cc
libircd_la_SOURCES += net_listener.cc
libircd_la_SOURCES += net_listener_udp.cc
libircd_la_SOURCES += server.cc
libircd_la_SOURCES += client.cc
libircd_la_SOURCES += resource.cc
2016-11-29 16:23:38 +01:00
if JS
libircd_la_SOURCES += js.cc
2016-11-29 16:23:38 +01:00
endif
libircd_la_SOURCES += ircd.cc
2019-09-26 05:30:26 +02:00
#
# Specific unit configurations
#
ROCKSDB_SRC_CPPFLAGS =#
ROCKSDB_SRC_CPPFLAGS += -isystem $(top_srcdir)/deps/rocksdb/include
ROCKSDB_SRC_CPPFLAGS += -isystem $(top_srcdir)/deps/rocksdb
2021-03-05 02:03:33 +01:00
GPT_FP_CXXFLAGS =#
GPT_FP_CXXFLAGS += -fno-math-errno
GPT_FP_CXXFLAGS += -fno-trapping-math
GPT_FP_CXXFLAGS += -ffinite-math-only
GPT_FP_CXXFLAGS += -fno-signed-zeros
GPT_FP_CXXFLAGS += -fdenormal-fp-math=positive-zero
GPT_FP_CXXFLAGS += -fassociative-math
GPT_FP_CXXFLAGS += -ffp-contract=fast
GPT_FP_CXXFLAGS += -freciprocal-math
#
# Specific unit option composition
#
2019-09-26 05:30:26 +02:00
client.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
ctx_x86_64.lo: AM_CPPFLAGS := -I$(top_srcdir)/include
2019-09-26 05:30:26 +02:00
ctx.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
ctx_ole.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
ctx_eh.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
db.lo: AM_CPPFLAGS := ${ROCKSDB_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
db_allocator.lo: AM_CPPFLAGS := ${ROCKSDB_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
db_database.lo: AM_CPPFLAGS := ${ROCKSDB_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
db_env.lo: AM_CPPFLAGS := ${ROCKSDB_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
db_fixes.lo: AM_CPPFLAGS := ${ROCKSDB_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
db_fixes.lo: AM_CPPFLAGS += ${ROCKSDB_SRC_CPPFLAGS}
db_port.lo: AM_CPPFLAGS := ${ROCKSDB_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
exception.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
exec.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
2019-09-26 05:30:26 +02:00
fmt.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
fmt.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
fs.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
fs_path.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
2019-09-26 05:30:26 +02:00
if AIO
fs_aio.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
endif
2019-09-26 05:30:26 +02:00
if IOU
fs_iou.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
endif
2021-03-05 02:03:33 +01:00
gpt.lo: AM_CXXFLAGS := ${AM_CXXFLAGS} ${GPT_FP_CXXFLAGS}
2019-09-26 05:30:26 +02:00
http.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
http.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
ios.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
if JS
js.lo: AM_CPPFLAGS := @JS_CPPFLAGS@ ${AM_CPPFLAGS}
endif
json.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
json.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
lex_cast.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
lex_cast.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
2021-01-04 11:29:40 +01:00
if OPENCL
cl.lo: AM_CPPFLAGS := @OPENCL_CPPFLAGS@ ${AM_CPPFLAGS}
endif
2020-03-10 18:16:42 +01:00
tokens.lo: AM_CPPFLAGS := @BOOST_CPPFLAGS@ ${AM_CPPFLAGS}
prof.lo: AM_CPPFLAGS := @BOOST_CPPFLAGS@ ${AM_CPPFLAGS}
2019-09-26 05:30:26 +02:00
if MAGIC
magic.lo: AM_CPPFLAGS := @MAGIC_CPPFLAGS@ ${AM_CPPFLAGS}
endif
if IMAGEMAGICK
magick.lo: AM_CPPFLAGS := @IMAGEMAGICK_CPPFLAGS@ ${AM_CPPFLAGS}
endif IMAGEMAGICK
2019-09-26 05:30:26 +02:00
mods.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
net.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
net_addrs.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
net_dns.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
net_dns_resolver.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
net_listener.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
net_listener_udp.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
2019-09-26 05:30:26 +02:00
openssl.lo: AM_CPPFLAGS := @SSL_CPPFLAGS@ @CRYPTO_CPPFLAGS@ ${AM_CPPFLAGS}
parse.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
parse.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
2020-02-12 00:38:27 +01:00
if PBC
pbc.lo: AM_CPPFLAGS := @PBC_CPPFLAGS@ ${AM_CPPFLAGS}
endif
if PNG
png.o: AM_CPPFLAGS := @PNG_CPPFLAGS@ ${AM_CPPFLAGS}
endif PNG
2019-09-26 05:30:26 +02:00
rfc1459.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
rfc1459.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
rfc3986.lo: AM_CPPFLAGS := ${SPIRIT_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
rfc3986.lo: AM_CXXFLAGS := ${SPIRIT_UNIT_CXXFLAGS} ${AM_CXXFLAGS}
server.lo: AM_CPPFLAGS := ${ASIO_UNIT_CPPFLAGS} ${AM_CPPFLAGS}
if SODIUM
sodium.lo: AM_CPPFLAGS := @SODIUM_CPPFLAGS@ ${AM_CPPFLAGS}
endif
#
# Other recipes
#
# LLVM PGO text to binary for -fprofile-use
default.profdata:
-$(LLVM_PROFDATA) merge -output=default.profdata default.proftext
2021-03-30 03:22:42 +02:00
gpt_cl.clo: gpt_cl.cl
clang++-11 -std=CL1.1 -c -pipe -Xclang -finclude-default-header -o gpt_cl.clo $^