tommath/makefile_include.mk

121 lines
2.9 KiB
Makefile
Raw Normal View History

#
# Include makefile for libtommath
#
2015-12-12 14:19:15 -05:00
#version of library
2017-08-29 16:27:20 -04:00
VERSION=1.0.1
2017-08-28 11:02:30 -04:00
VERSION_PC=1.0.1
VERSION_SO=1:1
2015-12-12 14:19:15 -05:00
2017-08-29 10:57:48 -04:00
PLATFORM := $(shell uname | sed -e 's/_.*//')
2015-12-12 14:19:15 -05:00
# default make target
default: ${LIBNAME}
2015-04-18 07:58:17 -04:00
# Compiler and Linker Names
2017-08-29 04:40:05 -04:00
ifndef CROSS_COMPILE
CROSS_COMPILE=
2015-04-18 07:58:17 -04:00
endif
ifeq ($(CC),cc)
2017-08-29 04:40:05 -04:00
CC = $(CROSS_COMPILE)gcc
2015-04-18 07:58:17 -04:00
endif
2017-08-29 04:40:05 -04:00
LD=$(CROSS_COMPILE)ld
AR=$(CROSS_COMPILE)ar
RANLIB=$(CROSS_COMPILE)ranlib
2015-04-18 07:58:17 -04:00
ifndef MAKE
MAKE=make
endif
CFLAGS += -I./ -Wall -Wsign-compare -Wextra -Wshadow
ifndef NO_ADDTL_WARNINGS
# additional warnings
CFLAGS += -Wsystem-headers -Wdeclaration-after-statement -Wbad-function-cast -Wcast-align
CFLAGS += -Wstrict-prototypes -Wpointer-arith
endif
ifdef COMPILE_DEBUG
#debug
CFLAGS += -g3
else
ifdef COMPILE_SIZE
#for size
CFLAGS += -Os
else
ifndef IGNORE_SPEED
#for speed
CFLAGS += -O3 -funroll-loops
#x86 optimizations [should be valid for any GCC install though]
CFLAGS += -fomit-frame-pointer
endif
endif # COMPILE_SIZE
endif # COMPILE_DEBUG
2017-08-29 10:57:48 -04:00
ifneq ($(findstring clang,$(CC)),)
CFLAGS += -Wno-typedef-redefinition -Wno-tautological-compare -Wno-builtin-requires-header
endif
ifneq ($(findstring mingw,$(CC)),)
CFLAGS += -Wno-shadow
endif
2017-08-29 10:57:48 -04:00
ifeq ($(PLATFORM), Darwin)
CFLAGS += -Wno-nullability-completeness
endif
# adjust coverage set
ifneq ($(filter $(shell arch), i386 i686 x86_64 amd64 ia64),)
COVERAGE = test_standalone timing
COVERAGE_APP = ./test && ./ltmtest
else
COVERAGE = test_standalone
COVERAGE_APP = ./test
endif
HEADERS_PUB=tommath.h tommath_class.h tommath_superclass.h
HEADERS=tommath_private.h $(HEADERS_PUB)
2015-04-18 07:58:17 -04:00
test_standalone: CFLAGS+=-DLTM_DEMO_TEST_VS_MTEST=0
#LIBPATH The directory for libtommath to be installed to.
#INCPATH The directory to install the header files for libtommath.
#DATAPATH The directory to install the pdf docs.
DESTDIR ?=
PREFIX ?= /usr/local
LIBPATH ?= $(PREFIX)/lib
INCPATH ?= $(PREFIX)/include
DATAPATH ?= $(PREFIX)/share/doc/libtommath/pdf
2015-12-12 14:19:15 -05:00
#make the code coverage of the library
#
coverage: CFLAGS += -fprofile-arcs -ftest-coverage -DTIMING_NO_LOGS
coverage: LFLAGS += -lgcov
coverage: LDFLAGS += -lgcov
coverage: $(COVERAGE)
$(COVERAGE_APP)
2015-12-12 14:19:15 -05:00
lcov: coverage
rm -f coverage.info
lcov --capture --no-external --no-recursion $(LCOV_ARGS) --output-file coverage.info -q
genhtml coverage.info --output-directory coverage -q
# target that removes all coverage output
cleancov-clean:
rm -f `find . -type f -name "*.info" | xargs`
rm -rf coverage/
# cleans everything - coverage output and standard 'clean'
cleancov: cleancov-clean clean
clean:
2017-08-25 07:00:50 -04:00
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 \
2015-12-12 14:19:15 -05:00
*.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
rm -rf .libs/
2017-05-10 05:37:48 -04:00
${MAKE} -C etc/ clean MAKE=${MAKE}
${MAKE} -C doc/ clean MAKE=${MAKE}