Makefile: Add security compiling option (RELRO, SC, and FORTIFY)
[platform/upstream/cryptsetup.git] / Makefile.am
index de0d2a2..edbcab3 100644 (file)
@@ -1,5 +1,5 @@
-EXTRA_DIST = COPYING.LGPL FAQ docs misc
-SUBDIRS = po tests
+EXTRA_DIST = README.md COPYING.LGPL FAQ.md docs misc autogen.sh
+SUBDIRS = po tests tests/fuzz
 CLEANFILES =
 DISTCLEAN_TARGETS =
 
@@ -11,18 +11,32 @@ AM_CPPFLAGS = \
         -DLIBDIR=\""$(libdir)"\"                \
         -DPREFIX=\""$(prefix)"\"                \
         -DSYSCONFDIR=\""$(sysconfdir)"\"        \
-        -DVERSION=\""$(VERSION)"\"
-AM_CFLAGS = -Wall
-AM_LDFLAGS =
+        -DVERSION=\""$(VERSION)"\"              \
+        -DEXTERNAL_LUKS2_TOKENS_PATH=\"${EXTERNAL_LUKS2_TOKENS_PATH}\" \
+       -fstack-protector-strong -D_FORTIFY_SOURCE=2 -O2 -Wl,-z,relro
+AM_CFLAGS = -Wall -fPIE \
+           -fstack-protector-strong -D_FORTIFY_SOURCE=2 -O2 -Wl,-z,relro
+AM_CXXFLAGS = -Wall
+AM_LDFLAGS = -pie \
+            -Wl,-z,relro
 
-LDADD = $(LTLIBINTL) -lm
+if ENABLE_FUZZ_TARGETS
+AM_CFLAGS += -fsanitize=fuzzer-no-link
+AM_CXXFLAGS += -fsanitize=fuzzer-no-link
+endif
+
+LDADD = $(LTLIBINTL)
 
 tmpfilesddir = @DEFAULT_TMPFILESDIR@
 
+include_HEADERS =
+lib_LTLIBRARIES =
 noinst_LTLIBRARIES =
 sbin_PROGRAMS =
 man8_MANS =
 tmpfilesd_DATA =
+pkgconfig_DATA =
+dist_noinst_DATA =
 
 include man/Makemodule.am
 
@@ -35,12 +49,14 @@ include lib/crypto_backend/Makemodule.am
 include lib/Makemodule.am
 
 include src/Makemodule.am
+include tokens/Makemodule.am
 
 ACLOCAL_AMFLAGS = -I m4
 
 DISTCHECK_CONFIGURE_FLAGS =    \
        --with-tmpfilesdir=$$dc_install_base/usr/lib/tmpfiles.d \
-       --enable-internal-argon2 --enable-internal-sse-argon2
+       --enable-internal-argon2 --enable-internal-sse-argon2 \
+       --enable-external-tokens --enable-ssh-token --enable-asciidoc
 
 distclean-local:
        -find . -name \*~ -o -name \*.orig -o -name \*.rej | xargs rm -f
@@ -48,3 +64,17 @@ distclean-local:
 
 clean-local:
        -rm -rf docs/doxygen_api_docs libargon2.la
+
+install-data-local:
+       $(MKDIR_P) -m 0755 $(DESTDIR)/${EXTERNAL_LUKS2_TOKENS_PATH}
+
+uninstall-local:
+       rmdir $(DESTDIR)/${EXTERNAL_LUKS2_TOKENS_PATH} 2>/dev/null || :
+
+check-programs: libcryptsetup.la
+       $(MAKE) -C tests $@
+
+if ENABLE_FUZZ_TARGETS
+fuzz-targets: libcryptsetup.la libcrypto_backend.la
+       $(MAKE) -C tests/fuzz $@
+endif