xref: /isa-l/Makefile.am (revision c387163fcbca62701d646149564c550c78a4f985)
1EXTRA_DIST = autogen.sh Makefile.unx make.inc Makefile.nmake isa-l.def LICENSE README.md Doxyfile CONTRIBUTING.md
2CLEANFILES =
3LDADD =
4AM_MAKEFLAGS = --no-print-directory
5noinst_HEADERS =
6pkginclude_HEADERS = include/test.h
7noinst_LTLIBRARIES =
8bin_PROGRAMS =
9INCLUDE = -I $(srcdir)/include/
10D =
11
12pkgconfigdir = $(libdir)/pkgconfig
13pkgconfig_DATA = libisal.pc
14EXTRA_DIST += libisal.pc.in
15CLEANFILES += libisal.pc
16
17lsrc=
18src_include=
19extern_hdrs=
20other_src=
21check_tests=
22unit_tests=
23perf_tests=
24unit_tests_extra=
25perf_tests_extra=
26examples=
27other_tests=
28other_tests_x86_64=
29other_tests_x86_32=
30other_tests_aarch64=
31other_tests_ppc64le=
32lsrc_x86_64=
33lsrc_x86_32=
34lsrc_aarch64=
35lsrc_ppc64le=
36lsrc_base_aliases=
37lsrc32=
38unit_tests32=
39perf_tests32=
40progs=
41
42# Include units
43
44include erasure_code/Makefile.am
45include raid/Makefile.am
46include crc/Makefile.am
47include igzip/Makefile.am
48include tests/fuzz/Makefile.am
49include examples/ec/Makefile.am
50include programs/Makefile.am
51include mem/Makefile.am
52
53# LIB version info not necessarily the same as package version
54LIBISAL_CURRENT=2
55LIBISAL_REVISION=31
56LIBISAL_AGE=0
57
58lib_LTLIBRARIES = libisal.la
59pkginclude_HEADERS += $(sort ${extern_hdrs})
60libisal_la_SOURCES = ${lsrc}
61
62if CPU_X86_64
63ARCH=-Dx86_64
64libisal_la_SOURCES += ${lsrc_x86_64}
65other_tests += ${other_tests_x86_64}
66endif
67
68if CPU_X86_32
69ARCH=-Dx86_32
70libisal_la_SOURCES += ${lsrc_x86_32}
71other_tests += ${other_tests_x86_32}
72endif
73
74if CPU_AARCH64
75ARCH=-Daarch64
76libisal_la_SOURCES += ${lsrc_aarch64}
77other_tests += ${other_tests_aarch64}
78endif
79
80if CPU_PPC64LE
81ARCH=-Dppc64le
82libisal_la_SOURCES += ${lsrc_ppc64le}
83other_tests += ${other_tests_ppc64le}
84endif
85
86if CPU_UNDEFINED
87libisal_la_SOURCES += ${lsrc_base_aliases}
88endif
89
90nobase_include_HEADERS = isa-l.h
91libisal_la_LDFLAGS = $(AM_LDFLAGS) \
92	-version-info $(LIBISAL_CURRENT):$(LIBISAL_REVISION):$(LIBISAL_AGE)
93libisal_la_LIBADD = ${noinst_LTLIBRARIES}
94
95EXTRA_DIST += ${other_src}
96EXTRA_DIST += Release_notes.txt
97
98# For tests
99LDADD += libisal.la
100check_PROGRAMS = ${check_tests}
101TESTS = ${check_tests}
102
103# For additional tests
104EXTRA_PROGRAMS = ${unit_tests}
105EXTRA_PROGRAMS += ${perf_tests}
106EXTRA_PROGRAMS += ${other_tests}
107EXTRA_PROGRAMS += ${examples}
108CLEANFILES += ${EXTRA_PROGRAMS}
109
110programs:${progs}
111perfs: ${perf_tests}
112tests: ${unit_tests}
113checks: ${check_tests}
114other: ${other_tests}
115perf: $(addsuffix .run,$(perf_tests))
116ex: ${examples}
117test: $(addsuffix .run,$(unit_tests))
118
119# Build rule to run tests
120%.run: %
121	$<
122	@echo Completed run: $<
123
124# Support for yasm/nasm/gas
125if USE_YASM
126  as_filter = ${srcdir}/tools/yasm-filter.sh
127endif
128if USE_NASM
129  as_filter = ${srcdir}/tools/nasm-filter.sh
130endif
131if CPU_AARCH64
132  as_filter = $(CC) -D__ASSEMBLY__
133endif
134
135CCAS = $(as_filter)
136EXTRA_DIST += tools/yasm-filter.sh tools/nasm-filter.sh
137EXTRA_DIST += tools/yasm-cet-filter.sh tools/nasm-cet-filter.sh
138
139AM_CFLAGS = ${my_CFLAGS} ${INCLUDE} $(src_include) ${ARCH} ${D}
140if CPU_AARCH64
141AM_CCASFLAGS = ${AM_CFLAGS}
142else
143AM_CCASFLAGS = ${yasm_args} ${INCLUDE} ${src_include} ${DEFS} ${D}
144endif
145
146.asm.s:
147	@echo "  MKTMP   " $@;
148	@cp $< $@
149
150# Generate isa-l.h
151BUILT_SOURCES = isa-l.h
152CLEANFILES += isa-l.h
153isa-l.h:
154	@echo 'Building $@'
155	@echo ''			>> $@
156	@echo '/**'                     >> $@
157	@echo ' *  @file isa-l.h'       >> $@
158	@echo ' *  @brief Include for ISA-L library' >> $@
159	@echo ' */'                     >> $@
160	@echo ''                        >> $@
161	@echo '#ifndef _ISAL_H_'	>> $@
162	@echo '#define _ISAL_H_'	>> $@
163	@echo ''			>> $@
164	@echo '#define.ISAL_MAJOR_VERSION.${VERSION}' |  ${AWK} -F . '{print $$1, $$2, $$3}' >> $@
165	@echo '#define.ISAL_MINOR_VERSION.${VERSION}' |  ${AWK} -F . '{print $$1, $$2, $$4}' >> $@
166	@echo '#define.ISAL_PATCH_VERSION.${VERSION}' |  ${AWK} -F . '{print $$1, $$2, $$5}' >> $@
167	@echo '#define ISAL_MAKE_VERSION(maj, min, patch)  ((maj) * 0x10000 + (min) * 0x100 + (patch))' >> $@
168	@echo '#define ISAL_VERSION ISAL_MAKE_VERSION(ISAL_MAJOR_VERSION, ISAL_MINOR_VERSION, ISAL_PATCH_VERSION)' >> $@
169	@echo ''			>> $@
170	@for unit in $(sort $(extern_hdrs)); do echo "#include <isa-l/$$unit>" | sed -e 's;include/;;' >> $@; done
171	@echo '#endif //_ISAL_H_'	>> $@
172
173doc: isa-l.h
174	(cat Doxyfile; echo 'PROJECT_NUMBER=${VERSION}') | doxygen -
175	$(MAKE) -C generated_doc/latex &> generated_doc/latex_build_api.log
176	cp generated_doc/latex/refman.pdf isa-l_api_${VERSION}.pdf
177