xref: /isa-l_crypto/Makefile.am (revision 3aa2266bba7e1bce04a3fdb96386b1daf42fb065)
1EXTRA_DIST = autogen.sh Makefile.unx make.inc Makefile.nmake isa-l_crypto.def LICENSE README.md Doxyfile
2CLEANFILES =
3LDADD =
4AM_MAKEFLAGS = --no-print-directory
5noinst_HEADERS =
6pkginclude_HEADERS = include/test.h include/types.h include/endian_helper.h
7noinst_LTLIBRARIES =
8INCLUDE = -I $(srcdir)/include/
9
10pkgconfigdir = $(libdir)/pkgconfig
11pkgconfig_DATA = libisal_crypto.pc
12EXTRA_DIST += libisal_crypto.pc.in
13CLEANFILES += libisal_crypto.pc
14
15lsrc=
16src_include=
17extern_hdrs=
18other_src=
19check_tests=
20unit_tests=
21perf_tests=
22unit_tests_extra=
23perf_tests_extra=
24examples=
25other_tests=
26lsrc32=
27lsrc_x86_64=
28lsrc_x86_32=
29lsrc_aarch64=
30lsrc_base_aliases=
31unit_tests32=
32perf_tests32=
33
34# Include units
35include sha1_mb/Makefile.am
36include mh_sha1/Makefile.am
37include md5_mb/Makefile.am
38include sha256_mb/Makefile.am
39include sha512_mb/Makefile.am
40include mh_sha1_murmur3_x64_128/Makefile.am
41include mh_sha256/Makefile.am
42include rolling_hash/Makefile.am
43include sm3_mb/Makefile.am
44include misc/Makefile.am
45if CPU_X86_64
46include aes/Makefile.am
47endif
48if CPU_X86_32
49include aes/Makefile.am
50endif
51if CPU_AARCH64
52include aes/Makefile.am
53endif
54include fips/Makefile.am
55
56# LIB version info not necessarily the same as package version
57LIBISAL_CURRENT=2
58LIBISAL_REVISION=25
59LIBISAL_AGE=0
60
61lib_LTLIBRARIES = libisal_crypto.la
62pkginclude_HEADERS += $(sort ${extern_hdrs})
63libisal_crypto_la_SOURCES = ${lsrc}
64if CPU_X86_64
65libisal_crypto_la_SOURCES += ${lsrc_x86_64}
66endif
67
68if CPU_X86_32
69libisal_crypto_la_SOURCES += ${lsrc_x86_32}
70endif
71
72if CPU_AARCH64
73libisal_crypto_la_SOURCES += ${lsrc_aarch64}
74endif
75
76if CPU_UNDEFINED
77libisal_crypto_la_SOURCES += ${lsrc_base_aliases}
78endif
79
80nobase_include_HEADERS = isa-l_crypto.h
81libisal_crypto_la_LDFLAGS = $(AM_LDFLAGS) \
82	-version-info $(LIBISAL_CURRENT):$(LIBISAL_REVISION):$(LIBISAL_AGE)
83libisal_crypto_la_LIBADD = ${noinst_LTLIBRARIES}
84
85EXTRA_DIST += ${other_src}
86EXTRA_DIST += Release_notes.txt
87
88# For tests
89LDADD += libisal_crypto.la
90check_PROGRAMS = ${check_tests}
91TESTS = ${check_tests}
92
93# For additional tests
94EXTRA_PROGRAMS = ${unit_tests}
95EXTRA_PROGRAMS += ${perf_tests}
96EXTRA_PROGRAMS += ${other_tests}
97EXTRA_PROGRAMS += ${examples}
98CLEANFILES += ${EXTRA_PROGRAMS}
99
100perfs: ${perf_tests}
101tests: ${unit_tests}
102checks: ${check_tests}
103other: ${other_tests}
104perf: $(addsuffix .run,$(perf_tests))
105ex: ${examples}
106test: $(addsuffix .run,$(unit_tests))
107
108# Build rule to run tests
109%.run: %
110	$<
111	@echo Completed run: $<
112
113# Support for nasm
114if USE_NASM
115  as_filter = ${srcdir}/tools/nasm-filter.sh
116endif
117if CPU_AARCH64
118  as_filter = $(CC) -D__ASSEMBLY__
119endif
120CCAS = $(as_filter)
121EXTRA_DIST += tools/nasm-filter.sh
122EXTRA_DIST += tools/nasm-cet-filter.sh
123
124AM_CFLAGS = ${my_CFLAGS} ${INCLUDE} $(src_include) ${D}
125if CPU_AARCH64
126AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${D}
127else
128AM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${DEFS} ${D}
129endif
130
131.asm.s:
132	@echo "  MKTMP   " $@;
133	@cp $< $@
134
135# Generate isa-l_crypto.h
136BUILT_SOURCES = isa-l_crypto.h
137CLEANFILES += isa-l_crypto.h
138isa-l_crypto.h:
139	@echo 'Building $@'
140	@echo ''			>> $@
141	@echo '/**'			>> $@
142	@echo ' *  @file isa-l_crypto.h'>> $@
143	@echo ' *  @brief Include for ISA-L_crypto library'	>> $@
144	@echo ' */'			>> $@
145	@echo ''			>> $@
146	@echo '#ifndef _ISAL_CRYPTO_H_'	>> $@
147	@echo '#define _ISAL_CRYPTO_H_'	>> $@
148	@echo ''			>> $@
149	@for unit in $(sort $(extern_hdrs)); do echo "#include <isa-l_crypto/$$unit>" | sed -e 's;include/;;' >> $@; done
150	@echo '#endif //_ISAL_CRYPTO_H_'	>> $@
151
152doc: isa-l_crypto.h
153	(cat Doxyfile; echo 'PROJECT_NUMBER=${VERSION}') | doxygen -
154	$(MAKE) -C generated_doc/latex &> generated_doc/latex_build_api.log
155	cp generated_doc/latex/refman.pdf isa-l_crypto_api_${VERSION}.pdf
156