123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- option(HAVE_LOCKS "Build with POSIX locking mechanisms" ON)
- option(WITH_REALLOC "Build with realloc" OFF)
- option(WITH_EXAMPLES "Build with examples" OFF)
- option(WITH_MEMORY_SPACE_AWARENESS "Build with memory space awareness" OFF)
- option(WITH_FIXED_LISTS "Build with predefined lists of fixed-sized blocks" ON)
- option(WITH_STATS "Build with statistics" OFF)
- option(WITH_KNOBS "Build with knobs support" OFF)
- option(WITH_ADAPTIVITY "Build with adaptivity" OFF)
- option(WITH_STATIC_LIB "Build a static library" OFF)
- option(WITH_SHARED_LIB "Build a shared library" OFF)
- option(WITH_DOC "Build with documentation" OFF)
- option(REPLACE_MALLOC "Replace function calls" OFF)
- set(NUM_HEAPS 1)
- if (NUM_HEAPS GREATER 1)
- set(MULTIPLE_HEAPS ON)
- endif (NUM_HEAPS GREATER 1)
- set(WITH_SYSTEM_CALLS "no" "Build with OS call support for more memory")
- set(SEARCH_POLICY "best")
- set(FIT_PERCENTAGE 0.8)
- set(INITIAL_SEARCH_POLICY "best")
- set(WITH_COALESCING "never" "Build with coalescing support")
- set(WITH_SPLITTING "never" "Build with splitting support")
- set(BLOCKS_ORGANIZATION "sll" "Blocks organized in singly linked lists")
- option(WITH_OWNERSHIP "Build with ownership information in blocks" OFF)
- option(P2012 "Build for P2012 runtime" OFF)
- option(LEON3 "Build for Leon3" OFF)
- option(LINUXTEST "Build a case for Linux" ON)
- if (P2012)
- set(HAVE_LOCKS OFF)
- set(WITH_MEMORY_SPACE_AWARENESS ON)
- set(WITH_STATIC_LIB ON)
- set(NUM_HEAPS 1)
- set(LINUXTEST OFF)
- set(WITH_FIXED_LISTS OFF)
- set(WITH_COALESCING "never")
- set(WITH_SPLITTING "never")
- set(BLOCKS_ORGANIZATION "sll")
- endif (P2012)
- if (LEON3)
- set(HAVE_LOCKS OFF)
- set(WITH_MEMORY_SPACE_AWARENESS ON)
- set(WITH_STATIC_LIB ON)
- set(NUM_HEAPS 1)
- set(LINUXTEST OFF)
- set(WITH_FIXED_LISTS OFF)
- set(WITH_COALESCING "fixed")
- set(MAX_COALESCE_SIZE 60000)
- set(WITH_SPLITTING "never")
- set(BLOCKS_ORGANIZATION "sll")
- endif (LEON3)
- if (LINUXTEST)
- set(WITH_SYSTEM_CALLS "mmap")
- set(SEARCH_POLICY "allocvar")
- set(FIT_PERCENTAGE 0.6)
- set(HAVE_LOCKS ON)
- set(WITH_EXAMPLES ON)
- set(WITH_COALESCING "variable")
- set(MAX_COALESCE_SIZE 60000)
- set(WITH_SPLITTING "variable")
- set(MIN_SPLITTING_SIZE 300)
- set(WITH_SHARED_LIB ON)
- set(WITH_STATIC_LIB ON)
- set(WITH_REALLOC ON)
- set(REPLACE_MALLOC ON)
- set(WITH_DOC ON)
- endif (LINUXTEST)
- if(BLOCKS_ORGANIZATION STREQUAL "dll")
- set(BLOCKS_IN_DLL ON)
- else(BLOCKS_ORGANIZATION STREQUAL "dll")
- set(BLOCKS_IN_SLL ON)
- endif(BLOCKS_ORGANIZATION STREQUAL "dll")
- if(WITH_SYSTEM_CALLS STREQUAL "mmap")
- set(WITH_MMAP ON)
- endif(WITH_SYSTEM_CALLS STREQUAL "mmap")
- if(SEARCH_POLICY STREQUAL "best")
- set(BEST_FIT ON)
- elseif(SEARCH_POLICY STREQUAL "good")
- set(GOOD_FIT ON)
- elseif(SEARCH_POLICY STREQUAL "exact")
- set(EXACT_FIT ON)
- elseif(SEARCH_POLICY STREQUAL "first")
- set(FIRST_FIT ON)
- elseif(SEARCH_POLICY STREQUAL "allocvar")
- set(ALLOC_VAR_FIT ON)
- elseif(SEARCH_POLICY STREQUAL "heapvar")
- set(HEAP_VAR_FIT ON)
- endif(SEARCH_POLICY STREQUAL "best")
- if(WITH_COALESCING STREQUAL "fixed")
- if(NOT DEFINED MAX_COALESCE_SIZE)
- message(FATAL_ERROR "You have to set MAX_COALESCE_SIZE by using -DMAX_COALESCE_SIZE={size}.")
- endif(NOT DEFINED MAX_COALESCE_SIZE)
- if (MULTIPLE_HEAPS)
- # Coalescing on multiple heaps requires heap ownership information per
- # block
- set(WITH_OWNERSHIP ON)
- endif (MULTIPLE_HEAPS)
- set(COALESCING_FIXED ON)
- elseif(WITH_COALESCING STREQUAL "variable")
- if(NOT DEFINED MAX_COALESCE_SIZE)
- message(FATAL_ERROR "You have to set MAX_COALESCE_SIZE by using -DMAX_COALESCE_SIZE={size}.")
- endif(NOT DEFINED MAX_COALESCE_SIZE)
- set(WITH_KNOBS ON)
- if (MULTIPLE_HEAPS)
- # Coalescing on multiple heaps requires heap ownership information per
- # block
- set(WITH_OWNERSHIP ON)
- endif (MULTIPLE_HEAPS)
- set(COALESCING_VARIABLE ON)
- endif(WITH_COALESCING STREQUAL "fixed")
- if(WITH_SPLITTING STREQUAL "fixed")
- if(NOT DEFINED MIN_SPLITTING_SIZE)
- message(FATAL_ERROR "You have to set MIN_SPLITTING_SIZE by using -DMIN_SPLITTING_SIZE={size}.")
- endif(NOT DEFINED MIN_SPLITTING_SIZE)
- set(SPLITTING_FIXED ON)
- elseif(WITH_SPLITTING STREQUAL "variable")
- if(NOT DEFINED MIN_SPLITTING_SIZE)
- message(FATAL_ERROR "You have to set MIN_SPLITTING_SIZE by using -DMIN_SPLITTING_SIZE={size}.")
- endif(NOT DEFINED MIN_SPLITTING_SIZE)
- set(WITH_KNOBS ON)
- set(SPLITTING_VARIABLE ON)
- endif(WITH_SPLITTING STREQUAL "fixed")
|