annotate bqvec/Makefile @ 372:af71cbdab621 tip

Update bqvec code
author Chris Cannam
date Tue, 19 Nov 2019 10:13:32 +0000
parents 5d0a2ebb4d17
children
rev   line source
Chris@366 1
Chris@366 2 # Add to VECTOR_DEFINES the relevant options for your desired
Chris@366 3 # third-party library support.
Chris@366 4 #
Chris@366 5 # Available options are
Chris@366 6 #
Chris@366 7 # -DHAVE_IPP Intel's Integrated Performance Primitives are available
Chris@366 8 # -DHAVE_VDSP Apple's Accelerate framework is available
Chris@366 9 #
Chris@372 10 # The above are optional (they affect performance, not function) and
Chris@372 11 # you may define more than one of them.
Chris@372 12 #
Chris@372 13 # The following two options trade off speed against precision for single-
Chris@372 14 # precision paths in cases where IPP and VDSP are not available:
Chris@372 15 #
Chris@372 16 # -DUSE_POMMIER_MATHFUN Use Julien Pommier's SSE/NEON implementation
Chris@372 17 # of sincos in 32-bit polar-to-cartesian conversion
Chris@372 18 # -DUSE_APPROXIMATE_ATAN2 Use a quick but *very* approximate atan2
Chris@372 19 # function in 32-bit cartesian-to-polar conversion
Chris@372 20 #
Chris@372 21 # And a handful of miscellaneous flags:
Chris@372 22 #
Chris@372 23 # -DLACK_SINCOS Math library lacks sincos() function
Chris@372 24 # -DNO_COMPLEX_TYPES Don't bother defining bq_complex_t functions
Chris@372 25 # -DUSE_SINGLE_PRECISION_COMPLEX Use float, not double, for bq_complex_t
Chris@372 26 # -DNO_EXCEPTIONS Don't throw exceptions (abort instead)
Chris@372 27 #
Chris@366 28 # Add any relevant -I flags for include paths as well.
Chris@366 29 #
Chris@366 30 # Note that you must supply the same flags when including bqvec
Chris@366 31 # headers later as you are using now when compiling the library. (You
Chris@366 32 # may find it simplest to just add the bqvec source files to your
Chris@366 33 # application's build system and not build a bqvec library at all.)
Chris@366 34
Chris@372 35 VECTOR_DEFINES :=
Chris@366 36
Chris@366 37
Chris@366 38 # Add to ALLOCATOR_DEFINES options relating to aligned malloc.
Chris@372 39 # These are not usually necessary.
Chris@366 40 #
Chris@366 41 # Available options are
Chris@366 42 #
Chris@372 43 # -DHAVE_POSIX_MEMALIGN The posix_memalign call is available in sys/mman.h
Chris@372 44 # -DLACK_POSIX_MEMALIGN The posix_memalign call is not available
Chris@366 45 #
Chris@372 46 # -DMALLOC_IS_ALIGNED The malloc call already returns aligned memory
Chris@372 47 # -DMALLOC_IS_NOT_ALIGNED The malloc call does not return aligned memory
Chris@366 48 #
Chris@372 49 # -DUSE_OWN_ALIGNED_MALLOC If no aligned malloc is available, roll your own
Chris@372 50 # -DAVOID_OWN_ALIGNED_MALLOC If no aligned malloc is available, refuse to build
Chris@366 51 #
Chris@372 52 # -DLACK_BAD_ALLOC The C++ library lacks the std::bad_alloc exception
Chris@366 53 #
Chris@366 54 # Here "aligned" is assumed to mean "aligned enough for whatever
Chris@372 55 # vector stuff the space will be used for" which likely means at least
Chris@366 56 # 16-byte alignment.
Chris@366 57 #
Chris@372 58 # If no options are provided, we will use IPP functions if HAVE_IPP is
Chris@372 59 # defined, or else use _aligned_malloc when building with Visual C++
Chris@372 60 # on Windows, roll our own when building with some other compiler on
Chris@372 61 # Windows, use system malloc when building on OS/X, and use
Chris@372 62 # posix_memalign elsewhere.
Chris@366 63 #
Chris@366 64 # Note that you must supply the same flags when including bqvec
Chris@366 65 # headers later as you are using now when compiling the library. (You
Chris@366 66 # may find it simplest to just add the bqvec source files to your
Chris@366 67 # application's build system and not build a bqvec library at all.)
Chris@366 68
Chris@372 69 ALLOCATOR_DEFINES :=
Chris@366 70
Chris@366 71
Chris@372 72 # Add any related includes and libraries here
Chris@372 73 #
Chris@372 74 THIRD_PARTY_INCLUDES :=
Chris@372 75 THIRD_PARTY_LIBS :=
Chris@366 76
Chris@366 77
Chris@372 78 # If you are including a set of bq libraries into a project, you can
Chris@372 79 # override variables for all of them (including all of the above) in
Chris@372 80 # the following file, which all bq* Makefiles will include if found
Chris@366 81
Chris@372 82 -include ../Makefile.inc-bq
Chris@366 83
Chris@366 84
Chris@372 85 # This project-local Makefile describes the source files and contains
Chris@372 86 # no routinely user-modifiable parts
Chris@366 87
Chris@372 88 include build/Makefile.inc