xref: /isa-l_crypto/Makefile.am (revision 3aa2266bba7e1bce04a3fdb96386b1daf42fb065)
17fd405e9SGreg TuckerEXTRA_DIST = autogen.sh Makefile.unx make.inc Makefile.nmake isa-l_crypto.def LICENSE README.md Doxyfile
26df3ef80SGreg TuckerCLEANFILES =
36df3ef80SGreg TuckerLDADD =
46df3ef80SGreg TuckerAM_MAKEFLAGS = --no-print-directory
56df3ef80SGreg Tuckernoinst_HEADERS =
692aa5aa4SGreg Tuckerpkginclude_HEADERS = include/test.h include/types.h include/endian_helper.h
76df3ef80SGreg Tuckernoinst_LTLIBRARIES =
86df3ef80SGreg TuckerINCLUDE = -I $(srcdir)/include/
96df3ef80SGreg Tucker
10c995a885SGreg Tuckerpkgconfigdir = $(libdir)/pkgconfig
11c995a885SGreg Tuckerpkgconfig_DATA = libisal_crypto.pc
12c995a885SGreg TuckerEXTRA_DIST += libisal_crypto.pc.in
13c995a885SGreg TuckerCLEANFILES += libisal_crypto.pc
14c995a885SGreg Tucker
156df3ef80SGreg Tuckerlsrc=
1636b9337dSXiaodong Liusrc_include=
176df3ef80SGreg Tuckerextern_hdrs=
186df3ef80SGreg Tuckerother_src=
196df3ef80SGreg Tuckercheck_tests=
206df3ef80SGreg Tuckerunit_tests=
216df3ef80SGreg Tuckerperf_tests=
226df3ef80SGreg Tuckerunit_tests_extra=
236df3ef80SGreg Tuckerperf_tests_extra=
246df3ef80SGreg Tuckerexamples=
256df3ef80SGreg Tuckerother_tests=
266df3ef80SGreg Tuckerlsrc32=
27ffd20d8cSJerry Yulsrc_x86_64=
28ffd20d8cSJerry Yulsrc_x86_32=
29ffd20d8cSJerry Yulsrc_aarch64=
30ffd20d8cSJerry Yulsrc_base_aliases=
316df3ef80SGreg Tuckerunit_tests32=
326df3ef80SGreg Tuckerperf_tests32=
336df3ef80SGreg Tucker
346df3ef80SGreg Tucker# Include units
356df3ef80SGreg Tuckerinclude sha1_mb/Makefile.am
36ffd20d8cSJerry Yuinclude mh_sha1/Makefile.am
37ffd20d8cSJerry Yuinclude md5_mb/Makefile.am
386df3ef80SGreg Tuckerinclude sha256_mb/Makefile.am
396df3ef80SGreg Tuckerinclude sha512_mb/Makefile.am
4081cebc19SGreg Tuckerinclude mh_sha1_murmur3_x64_128/Makefile.am
417dc32ad5SXiaodong Liuinclude mh_sha256/Makefile.am
4253dc9fa0SGreg Tuckerinclude rolling_hash/Makefile.am
43449703d9SChunyang Huiinclude sm3_mb/Makefile.am
44fea2d86aSMarcel Cornuinclude misc/Makefile.am
452118044bSDaniel Huif CPU_X86_64
46dc44e3c3SJerry Yuinclude aes/Makefile.am
472118044bSDaniel Huendif
482118044bSDaniel Huif CPU_X86_32
492118044bSDaniel Huinclude aes/Makefile.am
502118044bSDaniel Huendif
512118044bSDaniel Huif CPU_AARCH64
522118044bSDaniel Huinclude aes/Makefile.am
532118044bSDaniel Huendif
545e4dc74cSPablo de Larainclude fips/Makefile.am
55d7dccff4SJerry Yu
566df3ef80SGreg Tucker# LIB version info not necessarily the same as package version
576df3ef80SGreg TuckerLIBISAL_CURRENT=2
58*3aa2266bSPablo de LaraLIBISAL_REVISION=25
596df3ef80SGreg TuckerLIBISAL_AGE=0
606df3ef80SGreg Tucker
616df3ef80SGreg Tuckerlib_LTLIBRARIES = libisal_crypto.la
626df3ef80SGreg Tuckerpkginclude_HEADERS += $(sort ${extern_hdrs})
636df3ef80SGreg Tuckerlibisal_crypto_la_SOURCES = ${lsrc}
64ffd20d8cSJerry Yuif CPU_X86_64
65ffd20d8cSJerry Yulibisal_crypto_la_SOURCES += ${lsrc_x86_64}
66ffd20d8cSJerry Yuendif
67ffd20d8cSJerry Yu
68ffd20d8cSJerry Yuif CPU_X86_32
69ffd20d8cSJerry Yulibisal_crypto_la_SOURCES += ${lsrc_x86_32}
70ffd20d8cSJerry Yuendif
71ffd20d8cSJerry Yu
72ffd20d8cSJerry Yuif CPU_AARCH64
73ffd20d8cSJerry Yulibisal_crypto_la_SOURCES += ${lsrc_aarch64}
74ffd20d8cSJerry Yuendif
75ffd20d8cSJerry Yu
76ffd20d8cSJerry Yuif CPU_UNDEFINED
77ffd20d8cSJerry Yulibisal_crypto_la_SOURCES += ${lsrc_base_aliases}
78ffd20d8cSJerry Yuendif
79ffd20d8cSJerry Yu
806df3ef80SGreg Tuckernobase_include_HEADERS = isa-l_crypto.h
816df3ef80SGreg Tuckerlibisal_crypto_la_LDFLAGS = $(AM_LDFLAGS) \
826df3ef80SGreg Tucker	-version-info $(LIBISAL_CURRENT):$(LIBISAL_REVISION):$(LIBISAL_AGE)
836df3ef80SGreg Tuckerlibisal_crypto_la_LIBADD = ${noinst_LTLIBRARIES}
846df3ef80SGreg Tucker
856df3ef80SGreg TuckerEXTRA_DIST += ${other_src}
866df3ef80SGreg TuckerEXTRA_DIST += Release_notes.txt
876df3ef80SGreg Tucker
886df3ef80SGreg Tucker# For tests
896df3ef80SGreg TuckerLDADD += libisal_crypto.la
906df3ef80SGreg Tuckercheck_PROGRAMS = ${check_tests}
916df3ef80SGreg TuckerTESTS = ${check_tests}
926df3ef80SGreg Tucker
936df3ef80SGreg Tucker# For additional tests
946df3ef80SGreg TuckerEXTRA_PROGRAMS = ${unit_tests}
956df3ef80SGreg TuckerEXTRA_PROGRAMS += ${perf_tests}
966df3ef80SGreg TuckerEXTRA_PROGRAMS += ${other_tests}
976df3ef80SGreg TuckerEXTRA_PROGRAMS += ${examples}
986df3ef80SGreg TuckerCLEANFILES += ${EXTRA_PROGRAMS}
996df3ef80SGreg Tucker
1006df3ef80SGreg Tuckerperfs: ${perf_tests}
1016df3ef80SGreg Tuckertests: ${unit_tests}
1025f81481dSGreg Tuckerchecks: ${check_tests}
1036df3ef80SGreg Tuckerother: ${other_tests}
1046df3ef80SGreg Tuckerperf: $(addsuffix .run,$(perf_tests))
1056df3ef80SGreg Tuckerex: ${examples}
1066df3ef80SGreg Tuckertest: $(addsuffix .run,$(unit_tests))
1076df3ef80SGreg Tucker
1086df3ef80SGreg Tucker# Build rule to run tests
1096df3ef80SGreg Tucker%.run: %
1106df3ef80SGreg Tucker	$<
1116df3ef80SGreg Tucker	@echo Completed run: $<
1126df3ef80SGreg Tucker
113151e9bcaSPablo de Lara# Support for nasm
1146df3ef80SGreg Tuckerif USE_NASM
1156df3ef80SGreg Tucker  as_filter = ${srcdir}/tools/nasm-filter.sh
1166df3ef80SGreg Tuckerendif
117ffd20d8cSJerry Yuif CPU_AARCH64
118c22a0636SJerry Yu  as_filter = $(CC) -D__ASSEMBLY__
119ffd20d8cSJerry Yuendif
1206df3ef80SGreg TuckerCCAS = $(as_filter)
121151e9bcaSPablo de LaraEXTRA_DIST += tools/nasm-filter.sh
122151e9bcaSPablo de LaraEXTRA_DIST += tools/nasm-cet-filter.sh
12336b9337dSXiaodong Liu
124fa6261a4SPablo de LaraAM_CFLAGS = ${my_CFLAGS} ${INCLUDE} $(src_include) ${D}
125f2e0339bSchenxuqiangif CPU_AARCH64
126151e9bcaSPablo de LaraAM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${D}
127f2e0339bSchenxuqiangelse
128151e9bcaSPablo de LaraAM_CCASFLAGS = ${asm_args} ${INCLUDE} $(src_include) ${DEFS} ${D}
129f2e0339bSchenxuqiangendif
1306df3ef80SGreg Tucker
1316df3ef80SGreg Tucker.asm.s:
1326df3ef80SGreg Tucker	@echo "  MKTMP   " $@;
1336df3ef80SGreg Tucker	@cp $< $@
1346df3ef80SGreg Tucker
1356df3ef80SGreg Tucker# Generate isa-l_crypto.h
1366df3ef80SGreg TuckerBUILT_SOURCES = isa-l_crypto.h
1376df3ef80SGreg TuckerCLEANFILES += isa-l_crypto.h
1386df3ef80SGreg Tuckerisa-l_crypto.h:
1396df3ef80SGreg Tucker	@echo 'Building $@'
1406df3ef80SGreg Tucker	@echo ''			>> $@
14117570868SGreg Tucker	@echo '/**'			>> $@
14217570868SGreg Tucker	@echo ' *  @file isa-l_crypto.h'>> $@
14317570868SGreg Tucker	@echo ' *  @brief Include for ISA-L_crypto library'	>> $@
14417570868SGreg Tucker	@echo ' */'			>> $@
14517570868SGreg Tucker	@echo ''			>> $@
1466df3ef80SGreg Tucker	@echo '#ifndef _ISAL_CRYPTO_H_'	>> $@
1476df3ef80SGreg Tucker	@echo '#define _ISAL_CRYPTO_H_'	>> $@
1486df3ef80SGreg Tucker	@echo ''			>> $@
1496df3ef80SGreg Tucker	@for unit in $(sort $(extern_hdrs)); do echo "#include <isa-l_crypto/$$unit>" | sed -e 's;include/;;' >> $@; done
1506df3ef80SGreg Tucker	@echo '#endif //_ISAL_CRYPTO_H_'	>> $@
1517fd405e9SGreg Tucker
1527fd405e9SGreg Tuckerdoc: isa-l_crypto.h
1537fd405e9SGreg Tucker	(cat Doxyfile; echo 'PROJECT_NUMBER=${VERSION}') | doxygen -
1547fd405e9SGreg Tucker	$(MAKE) -C generated_doc/latex &> generated_doc/latex_build_api.log
1557fd405e9SGreg Tucker	cp generated_doc/latex/refman.pdf isa-l_crypto_api_${VERSION}.pdf
156