Edit

kc3-lang/libtommath/makefile.include

Branch :

  • Show log

    Commit

  • Author : Dennis Fateyev
    Date : 2015-12-25 19:23:46
    Hash : 8fde8fa4
    Message : Improve package version assignment

  • makefile.include
  • #
    # Include makefile for libtommath
    #
    
    #version of library
    VER_MAJOR=0
    VER_MINOR=43
    VER_PATCH=0
    
    # default make target
    default: ${LIBNAME}
    
    # Compiler and Linker Names
    ifndef PREFIX
      PREFIX=
    endif
    
    ifeq ($(CC),cc)
      CC = $(PREFIX)gcc
    endif
    LD=$(PREFIX)ld
    AR=$(PREFIX)ar
    RANLIB=$(PREFIX)ranlib
    
    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
    
    HEADERS_PUB=tommath.h tommath_class.h tommath_superclass.h
    HEADERS=tommath_private.h $(HEADERS_PUB)
    
    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.
    LIBPATH?=/usr/lib
    INCPATH?=/usr/include
    DATAPATH?=/usr/share/doc/libtommath/pdf
    
    #make the code coverage of the library
    #
    coverage: CFLAGS += -fprofile-arcs -ftest-coverage -DTIMING_NO_LOGS
    coverage: LFLAGS += -lgcov
    coverage: LDFLAGS += -lgcov
    
    coverage: test_standalone timing
    	./test
    	./ltmtest
    
    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
    
    coveralls: coverage
    	cpp-coveralls
    
    # 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:
    	rm -f *.gcda *.gcno *.bat *.o *.a *.obj *.lib *.exe *.dll etclib/*.o demo/demo.o test ltmtest mpitest mtest/mtest mtest/mtest.exe \
            *.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/
    	cd etc ; MAKE=${MAKE} ${MAKE} clean
    	cd pics ; MAKE=${MAKE} ${MAKE} clean