xref: /freebsd/sys/contrib/openzfs/config/Rules.am (revision 3747329b7864d0f98a0e34dda0113804ab3a2dce)
1eda14cbcSMatt Macy#
2eda14cbcSMatt Macy# Default build rules for all user space components, every Makefile.am
3eda14cbcSMatt Macy# should include these rules and override or extend them as needed.
4eda14cbcSMatt Macy#
5eda14cbcSMatt Macy
6184c1b94SMartin MatuskaPHONY =
7716fd348SMartin MatuskaAM_CPPFLAGS = \
8eda14cbcSMatt Macy	-include $(top_builddir)/zfs_config.h \
9eda14cbcSMatt Macy	-I$(top_builddir)/include \
10eda14cbcSMatt Macy	-I$(top_srcdir)/include \
11eda14cbcSMatt Macy	-I$(top_srcdir)/module/icp/include \
12716fd348SMartin Matuska	-I$(top_srcdir)/lib/libspl/include \
13*3747329bSMartin Matuska	-I$(top_srcdir)/lib/libspl/include/os/@ac_system_l@
14eda14cbcSMatt Macy
15eda14cbcSMatt MacyAM_LIBTOOLFLAGS = --silent
16eda14cbcSMatt Macy
17a0b956f5SMartin MatuskaAM_CFLAGS  = -std=gnu99 -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wno-sign-compare -Wno-missing-field-initializers
18eda14cbcSMatt MacyAM_CFLAGS += -fno-strict-aliasing
19eda14cbcSMatt MacyAM_CFLAGS += $(NO_OMIT_FRAME_POINTER)
2053b70c86SMartin MatuskaAM_CFLAGS += $(IMPLICIT_FALLTHROUGH)
21eda14cbcSMatt MacyAM_CFLAGS += $(DEBUG_CFLAGS)
22eda14cbcSMatt MacyAM_CFLAGS += $(ASAN_CFLAGS)
23c03c5b1cSMartin MatuskaAM_CFLAGS += $(UBSAN_CFLAGS)
244fefe1b7SMartin MatuskaAM_CFLAGS += $(CODE_COVERAGE_CFLAGS)
254fefe1b7SMartin MatuskaAM_CFLAGS += $(NO_FORMAT_ZERO_LENGTH)
264fefe1b7SMartin MatuskaAM_CFLAGS += $(NO_FORMAT_TRUNCATION)
27eda14cbcSMatt Macyif BUILD_FREEBSD
28eda14cbcSMatt MacyAM_CFLAGS += -fPIC -Werror -Wno-unknown-pragmas -Wno-enum-conversion
29eda14cbcSMatt MacyAM_CFLAGS += -include $(top_srcdir)/include/os/freebsd/spl/sys/ccompile.h
30eda14cbcSMatt MacyAM_CFLAGS += -I/usr/include -I/usr/local/include
31eda14cbcSMatt Macyendif
32eda14cbcSMatt Macy
33716fd348SMartin MatuskaAM_CPPFLAGS += -D_GNU_SOURCE
34eda14cbcSMatt MacyAM_CPPFLAGS += -D_REENTRANT
35eda14cbcSMatt MacyAM_CPPFLAGS += -D_FILE_OFFSET_BITS=64
36eda14cbcSMatt MacyAM_CPPFLAGS += -D_LARGEFILE64_SOURCE
37eda14cbcSMatt MacyAM_CPPFLAGS += -DLIBEXECDIR=\"$(libexecdir)\"
38abcdc1b9SMartin MatuskaAM_CPPFLAGS += -DZFSEXECDIR=\"$(zfsexecdir)\"
39eda14cbcSMatt MacyAM_CPPFLAGS += -DRUNSTATEDIR=\"$(runstatedir)\"
40eda14cbcSMatt MacyAM_CPPFLAGS += -DSBINDIR=\"$(sbindir)\"
41eda14cbcSMatt MacyAM_CPPFLAGS += -DSYSCONFDIR=\"$(sysconfdir)\"
42ee36e25aSMartin MatuskaAM_CPPFLAGS += -DPKGDATADIR=\"$(pkgdatadir)\"
43eda14cbcSMatt MacyAM_CPPFLAGS += $(DEBUG_CPPFLAGS)
44eda14cbcSMatt MacyAM_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS)
45716fd348SMartin MatuskaAM_CPPFLAGS += -DTEXT_DOMAIN=\"zfs-@ac_system_l@-user\"
46716fd348SMartin Matuska
47c03c5b1cSMartin Matuskaif ASAN_ENABLED
48c03c5b1cSMartin MatuskaAM_CPPFLAGS += -DZFS_ASAN_ENABLED
49c03c5b1cSMartin Matuskaendif
50c03c5b1cSMartin Matuska
51c03c5b1cSMartin Matuskaif UBSAN_ENABLED
52c03c5b1cSMartin MatuskaAM_CPPFLAGS += -DZFS_UBSAN_ENABLED
53c03c5b1cSMartin Matuskaendif
54c03c5b1cSMartin Matuska
55eda14cbcSMatt MacyAM_LDFLAGS  = $(DEBUG_LDFLAGS)
56eda14cbcSMatt MacyAM_LDFLAGS += $(ASAN_LDFLAGS)
57c03c5b1cSMartin MatuskaAM_LDFLAGS += $(UBSAN_LDFLAGS)
58eda14cbcSMatt Macy
59eda14cbcSMatt Macyif BUILD_FREEBSD
60ce4dcb97SMartin MatuskaAM_LDFLAGS += -fstack-protector-strong
61eda14cbcSMatt MacyAM_LDFLAGS += -Wl,-x -Wl,--fatal-warnings -Wl,--warn-shared-textrel
62eda14cbcSMatt MacyAM_LDFLAGS += -lm
63eda14cbcSMatt Macyendif
64716fd348SMartin Matuska
65716fd348SMartin Matuska
66716fd348SMartin Matuska# If a target includes kernel code, generate warnings for large stack frames
67716fd348SMartin MatuskaKERNEL_CFLAGS       = $(FRAME_LARGER_THAN)
68716fd348SMartin Matuska
69716fd348SMartin Matuska# See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54020
70716fd348SMartin MatuskaLIBRARY_CFLAGS      = -no-suppress
71716fd348SMartin Matuska
72716fd348SMartin Matuska# Forcibly enable asserts/debugging for libzpool &al.
73e2df9bb4SMartin Matuska# Since ZFS_DEBUG can change shared data structures, all libzpool users must
74e2df9bb4SMartin Matuska# be compiled with the same flags.
75e2df9bb4SMartin Matuska# See https://github.com/openzfs/zfs/issues/16476
76e2df9bb4SMartin MatuskaLIBZPOOL_CPPFLAGS = -DDEBUG -UNDEBUG -DZFS_DEBUG
77