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