2017-09-29 22:59:11 -07:00
|
|
|
################################################################################
|
2017-09-08 02:32:49 -07:00
|
|
|
#
|
2017-09-29 22:59:11 -07:00
|
|
|
# IRCd Modules
|
2017-09-08 02:32:49 -07:00
|
|
|
#
|
|
|
|
|
2017-09-29 22:59:11 -07:00
|
|
|
AM_CXXFLAGS = \
|
|
|
|
###
|
|
|
|
|
2016-07-20 11:55:46 -07:00
|
|
|
AM_CPPFLAGS = \
|
|
|
|
-I$(top_srcdir)/include \
|
2016-10-15 19:09:38 -07:00
|
|
|
@JS_CPPFLAGS@ \
|
2016-08-14 19:44:16 -07:00
|
|
|
@BOOST_CPPFLAGS@ \
|
MAPI IV. This iteration leverages the C++11 standardized RTTI.
* Simplifies the export declarations for module developers. While
MAPI III utilized a flexible key-value vector to eliminate positional
arguments in a header initializer, now the developer simply makes
a list of pointers to what they want to export for injection into
IRCd. Example:
mapi::header IRCD_MODULE
{
"mymod",
"My module adds a command, a hook, and a CLICAP",
&my_cmdtab,
&some_hook,
&clicaptab
};
* Distributes the handlers for items passed to the above vector.
Anyone can add a type-handler to the module system from anywhere in IRCd
(and other modules?) When your type is encountered a handler is called
providing the symbol name to read out of the module. Example in parser.cc:
mods::add_loader<Message>([]
(mod &loading, const std::string &symbol)
{
auto &msg(get<Message>(loading, symbol));
add_command(msg.name, msg);
});
2016-08-29 12:09:59 -07:00
|
|
|
-include $(top_srcdir)/include/ircd/ircd.h \
|
2017-12-12 13:33:14 -07:00
|
|
|
-include $(top_srcdir)/include/ircd/m/m.h \
|
2017-08-23 14:55:58 -06:00
|
|
|
-include $(top_srcdir)/include/ircd/mapi.h \
|
2017-09-08 02:43:23 -07:00
|
|
|
###
|
2016-07-24 23:50:26 -07:00
|
|
|
|
2016-07-20 11:55:46 -07:00
|
|
|
AM_LDFLAGS = \
|
|
|
|
-L$(top_srcdir)/ircd \
|
2016-11-07 16:28:12 -08:00
|
|
|
@JS_LDFLAGS@ \
|
2017-09-08 02:43:23 -07:00
|
|
|
@BOOST_LDFLAGS@ \
|
|
|
|
###
|
2016-07-20 11:55:46 -07:00
|
|
|
|
|
|
|
AM_LDFLAGS += \
|
|
|
|
-avoid-version \
|
2016-11-07 16:28:12 -08:00
|
|
|
-module \
|
|
|
|
-Wl,-fuse-ld=gold \
|
|
|
|
-Wl,--shared \
|
|
|
|
-Wl,--export-dynamic \
|
2017-03-30 15:58:36 -07:00
|
|
|
-Wl,--no-gnu-unique \
|
2017-04-02 21:04:46 -07:00
|
|
|
-Wl,--no-allow-shlib-undefined \
|
2017-09-08 02:43:23 -07:00
|
|
|
$(PLATFORM_LDFLAGS) \
|
|
|
|
# -Wl,--no-undefined \
|
|
|
|
# -export-symbols-regex IRCD_MODULE* \
|
|
|
|
# -export-symbols-regex * \
|
|
|
|
###
|
2016-07-20 11:55:46 -07:00
|
|
|
|
2018-02-14 12:23:20 -08:00
|
|
|
###############################################################################
|
|
|
|
#
|
2018-03-05 02:44:03 -08:00
|
|
|
# Server modules
|
|
|
|
#
|
|
|
|
|
|
|
|
s_moduledir = @moduledir@
|
|
|
|
|
|
|
|
s_conf_la_SOURCES = s_conf.cc
|
|
|
|
s_control_la_SOURCES = s_control.cc
|
2018-03-05 08:53:48 -08:00
|
|
|
s_node_la_SOURCES = s_node.cc
|
2018-03-05 02:44:03 -08:00
|
|
|
|
|
|
|
s_module_LTLIBRARIES = \
|
|
|
|
s_conf.la \
|
|
|
|
s_control.la \
|
2018-03-05 08:53:48 -08:00
|
|
|
s_node.la \
|
2018-03-05 02:44:03 -08:00
|
|
|
###
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
#
|
|
|
|
# Messages / protocol
|
2018-02-14 12:23:20 -08:00
|
|
|
#
|
|
|
|
|
|
|
|
m_moduledir = @moduledir@
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2018-02-14 12:23:20 -08:00
|
|
|
m_noop_la_SOURCES = m_noop.cc
|
2018-03-08 09:29:42 -08:00
|
|
|
m_typing_la_SOURCES = m_typing.cc
|
2018-03-14 21:05:08 -07:00
|
|
|
m_receipt_la_SOURCES = m_receipt.cc
|
2018-03-05 02:44:03 -08:00
|
|
|
m_presence_la_SOURCES = m_presence.cc
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2018-02-14 12:23:20 -08:00
|
|
|
m_module_LTLIBRARIES = \
|
|
|
|
m_noop.la \
|
2018-03-08 09:29:42 -08:00
|
|
|
m_typing.la \
|
2018-03-14 21:05:08 -07:00
|
|
|
m_receipt.la \
|
2018-03-05 02:44:03 -08:00
|
|
|
m_presence.la \
|
2018-02-14 12:23:20 -08:00
|
|
|
###
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
#
|
|
|
|
# /
|
|
|
|
#
|
|
|
|
|
2018-02-19 12:43:13 -08:00
|
|
|
moduledir = @moduledir@
|
|
|
|
|
2017-08-23 15:10:28 -06:00
|
|
|
root_la_SOURCES = root.cc
|
2018-03-06 06:45:13 -08:00
|
|
|
console_la_SOURCES = console.cc
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2016-09-10 14:58:50 -07:00
|
|
|
module_LTLIBRARIES = \
|
2017-08-23 15:39:41 -06:00
|
|
|
root.la \
|
2018-03-06 06:45:13 -08:00
|
|
|
console.la \
|
2017-08-23 15:39:41 -06:00
|
|
|
###
|
|
|
|
|
2018-02-14 12:23:20 -08:00
|
|
|
###############################################################################
|
|
|
|
#
|
|
|
|
# /_matrix/client/
|
|
|
|
#
|
|
|
|
|
2017-08-23 15:39:41 -06:00
|
|
|
# This puts the source in client/ but the installed
|
|
|
|
# library is client_X.so in the main modules dir.
|
|
|
|
client_moduledir = @moduledir@
|
2018-02-14 12:23:20 -08:00
|
|
|
|
2017-08-23 15:39:41 -06:00
|
|
|
client_client_versions_la_SOURCES = client/versions.cc
|
|
|
|
client_client_events_la_SOURCES = client/events.cc
|
|
|
|
client_client_register_la_SOURCES = client/register.cc
|
|
|
|
client_client_login_la_SOURCES = client/login.cc
|
|
|
|
client_client_logout_la_SOURCES = client/logout.cc
|
|
|
|
client_client_sync_la_SOURCES = client/sync.cc
|
2018-02-12 14:45:48 -08:00
|
|
|
client_client_presence_la_SOURCES = client/presence.cc
|
|
|
|
client_client_profile_la_SOURCES = client/profile.cc
|
2018-02-14 21:56:47 -08:00
|
|
|
client_client_devices_la_SOURCES = client/devices.cc
|
2018-02-12 14:45:48 -08:00
|
|
|
client_client_keys_la_SOURCES = client/keys.cc
|
|
|
|
client_client_pushers_la_SOURCES = client/pushers.cc
|
2017-08-23 15:39:41 -06:00
|
|
|
client_client_publicrooms_la_SOURCES = client/publicrooms.cc
|
|
|
|
client_client_createroom_la_SOURCES = client/createroom.cc
|
|
|
|
client_client_pushrules_la_SOURCES = client/pushrules.cc
|
2017-11-15 17:48:25 -08:00
|
|
|
client_client_join_la_SOURCES = client/join.cc
|
2017-08-23 15:39:41 -06:00
|
|
|
client_client_voip_turnserver_la_SOURCES = client/voip/turnserver.cc
|
2017-12-12 13:33:14 -07:00
|
|
|
client_client_directory_room_la_SOURCES = client/directory/room.cc
|
2018-02-19 17:21:42 -08:00
|
|
|
client_client_directory_user_la_SOURCES = client/directory/user.cc
|
2018-02-23 22:13:17 -08:00
|
|
|
client_client_publicised_groups_la_SOURCES = client/publicised_groups.cc
|
2018-02-19 12:43:13 -08:00
|
|
|
|
|
|
|
client_module_LTLIBRARIES = \
|
2017-08-23 15:39:41 -06:00
|
|
|
client/client_versions.la \
|
|
|
|
client/client_events.la \
|
|
|
|
client/client_register.la \
|
|
|
|
client/client_login.la \
|
|
|
|
client/client_logout.la \
|
|
|
|
client/client_sync.la \
|
2018-02-12 14:45:48 -08:00
|
|
|
client/client_presence.la \
|
|
|
|
client/client_profile.la \
|
2018-02-14 21:56:47 -08:00
|
|
|
client/client_devices.la \
|
2018-02-12 14:45:48 -08:00
|
|
|
client/client_keys.la \
|
|
|
|
client/client_pushers.la \
|
2017-08-23 15:39:41 -06:00
|
|
|
client/client_publicrooms.la \
|
|
|
|
client/client_createroom.la \
|
|
|
|
client/client_pushrules.la \
|
2017-11-15 17:48:25 -08:00
|
|
|
client/client_join.la \
|
2017-08-23 15:39:41 -06:00
|
|
|
client/client_voip_turnserver.la \
|
2017-12-12 13:33:14 -07:00
|
|
|
client/client_directory_room.la \
|
2018-02-19 17:21:42 -08:00
|
|
|
client/client_directory_user.la \
|
2018-02-23 22:13:17 -08:00
|
|
|
client/client_publicised_groups.la \
|
2017-08-23 15:39:41 -06:00
|
|
|
###
|
|
|
|
|
2018-02-14 12:23:20 -08:00
|
|
|
#
|
|
|
|
# client/rooms/
|
|
|
|
#
|
|
|
|
|
|
|
|
client_client_rooms_la_SOURCES = \
|
|
|
|
client/rooms/messages.cc \
|
|
|
|
client/rooms/state.cc \
|
|
|
|
client/rooms/members.cc \
|
|
|
|
client/rooms/context.cc \
|
|
|
|
client/rooms/send.cc \
|
|
|
|
client/rooms/typing.cc \
|
2018-02-15 16:07:02 -08:00
|
|
|
client/rooms/redact.cc \
|
2018-02-14 12:23:20 -08:00
|
|
|
client/rooms/receipt.cc \
|
|
|
|
client/rooms/join.cc \
|
2018-02-21 15:22:04 -08:00
|
|
|
client/rooms/invite.cc \
|
|
|
|
client/rooms/leave.cc \
|
|
|
|
client/rooms/forget.cc \
|
|
|
|
client/rooms/kick.cc \
|
|
|
|
client/rooms/ban.cc \
|
|
|
|
client/rooms/unban.cc \
|
2018-02-14 12:23:20 -08:00
|
|
|
client/rooms/read_markers.cc \
|
2018-02-25 04:07:48 -08:00
|
|
|
client/rooms/initialsync.cc \
|
2018-02-14 12:23:20 -08:00
|
|
|
client/rooms/rooms.cc \
|
|
|
|
###
|
|
|
|
|
|
|
|
client_module_LTLIBRARIES += client/client_rooms.la
|
|
|
|
|
2018-02-14 12:42:25 -08:00
|
|
|
#
|
|
|
|
# client/user/
|
|
|
|
#
|
|
|
|
|
|
|
|
client_client_user_la_SOURCES = \
|
2018-02-20 14:45:22 -08:00
|
|
|
client/user/openid.cc \
|
2018-02-14 12:42:25 -08:00
|
|
|
client/user/filter.cc \
|
|
|
|
client/user/account_data.cc \
|
2018-02-21 16:53:07 -08:00
|
|
|
client/user/rooms.cc \
|
2018-03-11 11:16:39 -07:00
|
|
|
client/user/create.cc \
|
2018-02-14 12:42:25 -08:00
|
|
|
client/user/user.cc \
|
|
|
|
###
|
|
|
|
|
|
|
|
client_module_LTLIBRARIES += client/client_user.la
|
|
|
|
|
2018-02-14 12:54:21 -08:00
|
|
|
#
|
|
|
|
# client/account/
|
|
|
|
#
|
|
|
|
|
|
|
|
client_client_account_la_SOURCES = \
|
2018-02-14 14:29:26 -08:00
|
|
|
client/account/3pid.cc \
|
2018-02-14 12:59:42 -08:00
|
|
|
client/account/whoami.cc \
|
2018-02-14 12:54:21 -08:00
|
|
|
client/account/password.cc \
|
|
|
|
client/account/deactivate.cc \
|
|
|
|
client/account/account.cc \
|
|
|
|
###
|
|
|
|
|
|
|
|
client_module_LTLIBRARIES += client/client_account.la
|
|
|
|
|
2018-02-21 15:34:35 -08:00
|
|
|
#
|
|
|
|
# client/thirdparty/
|
|
|
|
#
|
|
|
|
|
|
|
|
client_client_thirdparty_protocols_la_SOURCES = \
|
|
|
|
client/thirdparty/protocols.cc \
|
|
|
|
###
|
|
|
|
|
|
|
|
client_module_LTLIBRARIES += \
|
|
|
|
client/client_thirdparty_protocols.la \
|
|
|
|
###
|
|
|
|
|
2018-02-14 12:23:20 -08:00
|
|
|
###############################################################################
|
|
|
|
#
|
|
|
|
# /_matrix/key/
|
|
|
|
#
|
|
|
|
|
2017-10-03 04:12:54 -07:00
|
|
|
key_moduledir = @moduledir@
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2018-03-05 23:42:57 -08:00
|
|
|
key_key_keys_la_SOURCES = key/keys.cc
|
2017-10-03 04:12:54 -07:00
|
|
|
key_key_server_la_SOURCES = key/server.cc
|
|
|
|
key_key_query_la_SOURCES = key/query.cc
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2017-10-03 04:12:54 -07:00
|
|
|
key_module_LTLIBRARIES = \
|
2018-03-05 23:42:57 -08:00
|
|
|
key/key_keys.la \
|
2017-10-03 04:12:54 -07:00
|
|
|
key/key_server.la \
|
|
|
|
key/key_query.la \
|
|
|
|
###
|
|
|
|
|
2018-02-14 12:23:20 -08:00
|
|
|
###############################################################################
|
|
|
|
#
|
|
|
|
# /_matrix/federation/
|
|
|
|
#
|
|
|
|
|
2017-10-25 09:42:23 -07:00
|
|
|
federation_moduledir = @moduledir@
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2017-10-25 09:42:23 -07:00
|
|
|
federation_federation_send_la_SOURCES = federation/send.cc
|
|
|
|
federation_federation_event_la_SOURCES = federation/event.cc
|
2018-01-23 15:54:26 -08:00
|
|
|
federation_federation_get_missing_events_la_SOURCES = federation/get_missing_events.cc
|
2018-02-19 14:20:20 -08:00
|
|
|
federation_federation_version_la_SOURCES = federation/version.cc
|
2018-03-14 13:36:13 -07:00
|
|
|
federation_federation_sender_la_SOURCES = federation/sender.cc
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2017-10-25 09:42:23 -07:00
|
|
|
federation_module_LTLIBRARIES = \
|
|
|
|
federation/federation_send.la \
|
|
|
|
federation/federation_event.la \
|
2018-01-23 15:54:26 -08:00
|
|
|
federation/federation_get_missing_events.la \
|
2018-02-19 14:20:20 -08:00
|
|
|
federation/federation_version.la \
|
2018-03-14 13:36:13 -07:00
|
|
|
federation/federation_sender.la \
|
2017-10-25 09:42:23 -07:00
|
|
|
###
|
|
|
|
|
2018-02-14 12:23:20 -08:00
|
|
|
###############################################################################
|
|
|
|
#
|
|
|
|
# /_matrix/media/
|
|
|
|
#
|
|
|
|
|
2017-10-25 09:42:23 -07:00
|
|
|
media_moduledir = @moduledir@
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2017-10-25 09:42:23 -07:00
|
|
|
media_media_download_la_SOURCES = media/download.cc
|
2017-12-24 17:15:42 -07:00
|
|
|
media_media_upload_la_SOURCES = media/upload.cc
|
2018-02-26 04:03:07 -08:00
|
|
|
media_media_thumbnail_la_SOURCES = media/thumbnail.cc
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2017-10-25 09:42:23 -07:00
|
|
|
media_module_LTLIBRARIES = \
|
|
|
|
media/media_download.la \
|
2017-12-24 17:15:42 -07:00
|
|
|
media/media_upload.la \
|
2018-02-26 04:03:07 -08:00
|
|
|
media/media_thumbnail.la \
|
2017-10-25 09:42:23 -07:00
|
|
|
###
|
|
|
|
|
2018-02-14 12:23:20 -08:00
|
|
|
###############################################################################
|
|
|
|
#
|
|
|
|
# JavaScript
|
|
|
|
#
|
2017-11-15 17:48:25 -08:00
|
|
|
|
2017-08-23 15:39:41 -06:00
|
|
|
if JS
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2018-03-05 02:49:11 -08:00
|
|
|
js_moduledir = @moduledir@
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2018-03-05 02:49:11 -08:00
|
|
|
js_js_console_la_SOURCES = js/console.cc
|
|
|
|
js_js_listener_la_SOURCES = js/listener.cc
|
|
|
|
js_js_kernel_la_SOURCES = js/kernel.cc
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2018-03-05 02:49:11 -08:00
|
|
|
js_module_LTLIBRARIES = \
|
|
|
|
js/js_console.la \
|
|
|
|
js/js_listener.la \
|
|
|
|
js/js_kernel.la \
|
2017-08-23 15:39:41 -06:00
|
|
|
###
|
2018-02-19 12:43:13 -08:00
|
|
|
|
2017-08-23 15:39:41 -06:00
|
|
|
endif
|