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

225 lines
5.5 KiB
Makefile
Raw Normal View History

AUTOMAKE_OPTIONS = foreign
DEFS += \
-DIRCD_UNIT \
###
2017-09-30 07:59:11 +02:00
AM_CXXFLAGS = \
2018-12-24 01:56:28 +01:00
-ftls-model=initial-exec \
@EXTRA_CXXFLAGS@ \
2017-09-30 07:59:11 +02:00
###
if DEBUG
if GCC
AM_CXXFLAGS += -fmax-errors=2
endif
endif
2016-07-20 20:55:46 +02:00
AM_CPPFLAGS = \
-I$(top_srcdir)/include \
@ROCKSDB_CPPFLAGS@ \
2016-10-11 06:28:16 +02:00
@JS_CPPFLAGS@ \
@BOOST_CPPFLAGS@ \
@SSL_CPPFLAGS@ \
@CRYPTO_CPPFLAGS@ \
@SODIUM_CPPFLAGS@ \
2018-02-18 04:48:36 +01:00
@MAGIC_CPPFLAGS@ \
@SNAPPY_CPPFLAGS@ \
@LZ4_CPPFLAGS@ \
@Z_CPPFLAGS@ \
@MALLOC_CPPFLAGS@ \
-include ircd/ircd.pic.h \
@EXTRA_CPPFLAGS@ \
2017-09-08 11:43:23 +02:00
###
2016-07-20 20:55:46 +02:00
AM_LDFLAGS = \
-version-info 3:1:0 \
2018-12-21 23:38:14 +01:00
-Wl,--warn-common \
-Wl,--warn-execstack \
2018-05-31 22:00:58 +02:00
-Wl,--detect-odr-violations \
2019-02-09 03:24:20 +01:00
-Wl,--unresolved-symbols=report-all \
-Wl,--no-undefined-version \
-Wl,--weak-unresolved-symbols \
2018-03-24 10:52:40 +01:00
-Wl,--icf=all \
2018-05-31 22:00:58 +02:00
-Wl,--rosegment \
2019-05-17 09:44:00 +02:00
-Wl,--gdb-index \
-Wl,-z,lazy \
-Wl,-z,nodelete \
-Wl,-z,nodlopen \
-Wl,-z,noexecstack \
-Wl,-z,combreloc \
-Wl,-z,text-unlikely-segment \
$(PLATFORM_LDFLAGS) \
@EXTRA_LDFLAGS@ \
2017-09-08 11:43:23 +02:00
###
2016-07-20 20:55:46 +02:00
2019-06-24 09:05:52 +02:00
if GCC
AM_LDFLAGS += \
-Wl,-fuse-ld=gold \
###
endif
if CLANG
AM_LDFLAGS += \
-fuse-ld=gold \
###
endif
if MINGW
AM_LDFLAGS += \
-Wl,--enable-runtime-pseudo-reloc \
-export-symbols-regex '*' \
###
endif
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@ \
2017-09-08 11:43:23 +02:00
@BOOST_LDFLAGS@ \
@SSL_LDFLAGS@ \
@CRYPTO_LDFLAGS@ \
@SODIUM_LDFLAGS@ \
2018-02-18 04:48:36 +01:00
@MAGIC_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@ \
@BOOST_LIBS@ \
@SSL_LIBS@ \
@CRYPTO_LIBS@ \
@SODIUM_LIBS@ \
2018-02-18 04:48:36 +01:00
@MAGIC_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
# 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.
#
libircd_la_SOURCES =#
libircd_la_SOURCES += assert.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 += vg.cc
libircd_la_SOURCES += exception.cc
libircd_la_SOURCES += util.cc
libircd_la_SOURCES += demangle.cc
libircd_la_SOURCES += locale.cc
libircd_la_SOURCES += timedate.cc
2019-06-05 11:10:29 +02:00
libircd_la_SOURCES += lex_cast.cc
libircd_la_SOURCES += stringops.cc
libircd_la_SOURCES += globular.cc
libircd_la_SOURCES += tokens.cc
libircd_la_SOURCES += parse.cc
libircd_la_SOURCES += rand.cc
libircd_la_SOURCES += base.cc
libircd_la_SOURCES += crh.cc
libircd_la_SOURCES += fmt.cc
libircd_la_SOURCES += json.cc
libircd_la_SOURCES += conf.cc
libircd_la_SOURCES += stats.cc
libircd_la_SOURCES += logger.cc
libircd_la_SOURCES += magic.cc
libircd_la_SOURCES += sodium.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
2019-05-01 23:40:39 +02:00
libircd_la_SOURCES += prof.cc
libircd_la_SOURCES += fs.cc
libircd_la_SOURCES += ios.cc
libircd_la_SOURCES += ctx.cc
libircd_la_SOURCES += ctx_ole.cc
2019-05-01 23:40:39 +02:00
if AIO
libircd_la_SOURCES += fs_aio.cc
endif
libircd_la_SOURCES += mods.cc
if LINUX
libircd_la_SOURCES += mods_ldso.cc
endif
libircd_la_SOURCES += db_write_thread.cc
libircd_la_SOURCES += db_port.cc
libircd_la_SOURCES += db_env.cc
libircd_la_SOURCES += db.cc
libircd_la_SOURCES += net.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 += m_name.cc
libircd_la_SOURCES += m_id.cc
libircd_la_SOURCES += m_dbs.cc
libircd_la_SOURCES += m_room.cc
2019-07-12 05:27:59 +02:00
libircd_la_SOURCES += m_fed.cc
libircd_la_SOURCES += m.cc
libircd_la_SOURCES += m_event.cc
libircd_la_SOURCES += ircd.cc
db_write_thread.lo: AM_CPPFLAGS += -I$(top_srcdir)/deps/rocksdb/include
db_write_thread.lo: AM_CPPFLAGS += -I$(top_srcdir)/deps/rocksdb
# Units containing a spirit grammar have some special needs to mitigate
# larger-than-normal compile time, compile memory, and output objects.
# A composite of CXXFLAGS is used specifically on units with grammars.
GUNIT_CXXFLAGS = ###
# Grammar templates can generate a huge number of individual debug symbols
# for each template instantiation deep within spirit; we try to reduce...
GUNIT_CXXFLAGS += -fno-var-tracking
if GCC
GUNIT_CXXFLAGS += -fno-var-tracking-assignments
GUNIT_CXXFLAGS += -femit-struct-debug-baseonly
endif
# The recursive grammars can consume a large amount of RAM when compiling
# (>= 2 GiB) which can thrash small systems and even sometimes crash GCC.
# This option reduces memory consumption at the cost of compilation speed.
if GCC
if LOWMEM_COMPILE
GUNIT_CXXFLAGS += --param ggc-min-expand=1
endif
endif
2019-04-21 00:41:11 +02:00
parse.lo: AM_CPPFLAGS := -include ircd/spirit.h ${AM_CPPFLAGS}
parse.lo: CXXFLAGS += ${GUNIT_CXXFLAGS}
2019-04-21 00:41:11 +02:00
json.lo: AM_CPPFLAGS := -include ircd/spirit.h ${AM_CPPFLAGS}
json.lo: CXXFLAGS += ${GUNIT_CXXFLAGS}
2019-04-21 00:41:11 +02:00
http.lo: AM_CPPFLAGS := -include ircd/spirit.h ${AM_CPPFLAGS}
http.lo: CXXFLAGS += ${GUNIT_CXXFLAGS}
2019-04-21 00:41:11 +02:00
fmt.lo: AM_CPPFLAGS := -include ircd/spirit.h ${AM_CPPFLAGS}
fmt.lo: CXXFLAGS += ${GUNIT_CXXFLAGS}
2019-04-21 00:41:11 +02:00
rfc3986.lo: AM_CPPFLAGS := -include ircd/spirit.h ${AM_CPPFLAGS}
rfc3986.lo: CXXFLAGS += ${GUNIT_CXXFLAGS}
2019-04-21 00:41:11 +02:00
rfc1459.lo: AM_CPPFLAGS := -include ircd/spirit.h ${AM_CPPFLAGS}
rfc1459.lo: CXXFLAGS += ${GUNIT_CXXFLAGS}
2019-04-21 00:41:11 +02:00
m_id.lo: AM_CPPFLAGS := -include ircd/spirit.h ${AM_CPPFLAGS}
m_id.lo: CXXFLAGS += ${GUNIT_CXXFLAGS}