comparison libtommath/makefile_include.mk @ 1470:8bba51a55704

Update to libtommath v1.0.1
author Matt Johnston <matt@ucc.asn.au>
date Thu, 08 Feb 2018 23:11:40 +0800
parents
children 47fcbdd12d9b
comparison
equal deleted inserted replaced
1469:51043e868f55 1470:8bba51a55704
1 #
2 # Include makefile for libtommath
3 #
4
5 #version of library
6 VERSION=1.0.1
7 VERSION_PC=1.0.1
8 VERSION_SO=1:1
9
10 PLATFORM := $(shell uname | sed -e 's/_.*//')
11
12 # default make target
13 default: ${LIBNAME}
14
15 # Compiler and Linker Names
16 ifndef CROSS_COMPILE
17 CROSS_COMPILE=
18 endif
19
20 ifeq ($(CC),cc)
21 CC = $(CROSS_COMPILE)gcc
22 endif
23 LD=$(CROSS_COMPILE)ld
24 AR=$(CROSS_COMPILE)ar
25 RANLIB=$(CROSS_COMPILE)ranlib
26
27 ifndef MAKE
28 MAKE=make
29 endif
30
31 CFLAGS += -I./ -Wall -Wsign-compare -Wextra -Wshadow
32
33 ifndef NO_ADDTL_WARNINGS
34 # additional warnings
35 CFLAGS += -Wsystem-headers -Wdeclaration-after-statement -Wbad-function-cast -Wcast-align
36 CFLAGS += -Wstrict-prototypes -Wpointer-arith
37 endif
38
39 ifdef COMPILE_DEBUG
40 #debug
41 CFLAGS += -g3
42 else
43
44 ifdef COMPILE_SIZE
45 #for size
46 CFLAGS += -Os
47 else
48
49 ifndef IGNORE_SPEED
50 #for speed
51 CFLAGS += -O3 -funroll-loops
52
53 #x86 optimizations [should be valid for any GCC install though]
54 CFLAGS += -fomit-frame-pointer
55 endif
56
57 endif # COMPILE_SIZE
58 endif # COMPILE_DEBUG
59
60 ifneq ($(findstring clang,$(CC)),)
61 CFLAGS += -Wno-typedef-redefinition -Wno-tautological-compare -Wno-builtin-requires-header
62 endif
63 ifeq ($(PLATFORM), Darwin)
64 CFLAGS += -Wno-nullability-completeness
65 endif
66
67 # adjust coverage set
68 ifneq ($(filter $(shell arch), i386 i686 x86_64 amd64 ia64),)
69 COVERAGE = test_standalone timing
70 COVERAGE_APP = ./test && ./ltmtest
71 else
72 COVERAGE = test_standalone
73 COVERAGE_APP = ./test
74 endif
75
76 HEADERS_PUB=tommath.h tommath_class.h tommath_superclass.h
77 HEADERS=tommath_private.h $(HEADERS_PUB)
78
79 test_standalone: CFLAGS+=-DLTM_DEMO_TEST_VS_MTEST=0
80
81 #LIBPATH The directory for libtommath to be installed to.
82 #INCPATH The directory to install the header files for libtommath.
83 #DATAPATH The directory to install the pdf docs.
84 DESTDIR ?=
85 PREFIX ?= /usr/local
86 LIBPATH ?= $(PREFIX)/lib
87 INCPATH ?= $(PREFIX)/include
88 DATAPATH ?= $(PREFIX)/share/doc/libtommath/pdf
89
90 #make the code coverage of the library
91 #
92 coverage: CFLAGS += -fprofile-arcs -ftest-coverage -DTIMING_NO_LOGS
93 coverage: LFLAGS += -lgcov
94 coverage: LDFLAGS += -lgcov
95
96 coverage: $(COVERAGE)
97 $(COVERAGE_APP)
98
99 lcov: coverage
100 rm -f coverage.info
101 lcov --capture --no-external --no-recursion $(LCOV_ARGS) --output-file coverage.info -q
102 genhtml coverage.info --output-directory coverage -q
103
104 # target that removes all coverage output
105 cleancov-clean:
106 rm -f `find . -type f -name "*.info" | xargs`
107 rm -rf coverage/
108
109 # cleans everything - coverage output and standard 'clean'
110 cleancov: cleancov-clean clean
111
112 clean:
113 rm -f *.gcda *.gcno *.gcov *.bat *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \
114 *.idx *.toc *.log *.aux *.dvi *.lof *.ind *.ilg *.ps *.log *.s mpi.c *.da *.dyn *.dpi tommath.tex `find . -type f | grep [~] | xargs` *.lo *.la
115 rm -rf .libs/
116 ${MAKE} -C etc/ clean MAKE=${MAKE}
117 ${MAKE} -C doc/ clean MAKE=${MAKE}