Commit | Line | Data |
---|---|---|
0e8dbcd4 SM |
1 | # SPDX-FileCopyrightText: 2017-2024 EfficiOS, Inc. |
2 | # SPDX-License-Identifier: MIT | |
3 | ||
4 | # Path to the plugins build directory. | |
5 | PLUGINS_PATH = $(abs_top_builddir)/src/plugins | |
6 | ||
7 | # Takes a plugin name and outputs the needed LDFLAGS to embed it. | |
8 | # | |
9 | # The --whole-archive option is important here. From the GNU linker's | |
10 | # documentation: | |
11 | # | |
12 | # For each archive mentioned on the command line after the | |
13 | # --whole-archive option, include every object file in the archive in | |
14 | # the link, rather than searching the archive for the required object | |
15 | # files. | |
16 | # | |
17 | # In our case, we find the plugins thanks to special sections in the | |
18 | # binary that are filled by plugin objects. If the linker discards those | |
19 | # symbols because the CLI does not use them directly, the CLI reports | |
20 | # no plugins found (plugins are effectively not embedded). | |
21 | pluginarchive = $(LD_WHOLE_ARCHIVE)$(PLUGINS_PATH)/$(1)/.libs/babeltrace-plugin-$(1).a$(LD_NO_WHOLE_ARCHIVE) |