DefineOptions.cmake 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. # Main Settings
  2. set(WITH_SYSTEM_CALLS "none" CACHE STRING "Choose what system calls can be used, options are: none, sbrk, mmap")
  3. set(SYS_ALLOC_SIZE 4096 CACHE INTEGER "Choose the default system allocation size")
  4. option(HAVE_LOCKS "Build with POSIX locking mechanisms" OFF)
  5. set(RAW_BLOCKS_TYPE "freelist" CACHE STRING "Choose what raw blocks can be used, options are: freelist, bitmap")
  6. # Free-list Settings
  7. set(ORDERING_POLICY "lifo" CACHE STRING "Choose the ordering policy in freelist-organized raw blocks, options are: address, fifo, lifo, size")
  8. set(FITTING_POLICY "best" CACHE STRING "Choose the fitting policy in freelist-organized raw blocks, options are: best, exact, first, good")
  9. set(GOOD_FIT_PERCENTAGE 0.8 CACHE DOUBLE "Choose the good-fit percentage")
  10. set(WITH_COALESCING "never" "Build with coalescing support")
  11. set(WITH_SPLITTING "never" "Build with splitting support")
  12. option(FREELIST_COALESCE_AFTER_SPLIT "Try to coalesce blocks after split" OFF)
  13. # Bitmap Settings
  14. set(BITMAP_RESOLUTION 256 CACHE INTEGER "Choose the size of cells in bitmap-organised raw blocks")
  15. # Function Implementation Settings
  16. option(WITH_REALLOC "Build with realloc() support" ON)
  17. option(WITH_CALLOC "Build with calloc() support" ON)
  18. option(WITH_MEMALIGN "Build with memalign() support" ON)
  19. # Knobs Settings
  20. option(WITH_KNOBS "Build with knobs support" OFF)
  21. # Statistics Settings
  22. set(STATS "none" CACHE STRING "Choose if the memory allocator keeps internally statistics per raw block or globally, options are: none, global")
  23. set(REQUEST_SIZE_INFO OFF)
  24. # Trace Settings
  25. option(WITH_MEM_TRACE "Support for memory traces" OFF)
  26. option(WITH_STATS_TRACE "Support for statistics traces" OFF)
  27. # Build Settings
  28. option(WITH_STATIC_LIB "Build a static library" OFF)
  29. option(WITH_SHARED_LIB "Build a shared library" OFF)
  30. # Misc Settings
  31. option(PARSE_ENV "Build with support to parse dmmlib environment variables" OFF)
  32. option(WITH_EXAMPLES "Build with examples" OFF)
  33. option(WITH_DOC "Build with documentation" OFF)
  34. # Presets
  35. option(P2012 "Build for P2012 runtime" OFF)
  36. option(LEON3 "Build for Leon3" OFF)
  37. option(LINUX "Build for Linux" OFF)
  38. if(P2012)
  39. set(DMM_DATA_ALIGNMENT "4") # Do not change
  40. set(WITH_SYSTEM_CALLS "none") # Do not change
  41. set(HAVE_LOCKS OFF) # Do not change
  42. set(RAW_BLOCKS_TYPE "freelist")
  43. set(ORDERING_POLICY "lifo")
  44. set(FITTING_POLICY "first")
  45. set(WITH_COALESCING "never")
  46. set(WITH_SPLITTING "never")
  47. set(WITH_REALLOC OFF)
  48. set(WITH_CALLOC OFF)
  49. set(WITH_MEMALIGN OFF)
  50. set(WITH_KNOBS OFF)
  51. set(STATS "none")
  52. set(REQUEST_SIZE_INFO OFF)
  53. set(WITH_MEM_TRACE OFF)
  54. set(WITH_STATS_TRACE OFF)
  55. set(WITH_STATIC_LIB ON)
  56. set(WITH_SHARED_LIB OFF)
  57. set(PARSE_ENV OFF)
  58. set(WITH_EXAMPLES OFF)
  59. set(WITH_DOC OFF)
  60. endif(P2012)
  61. if(LEON3)
  62. set(WITH_SYSTEM_CALLS "none")
  63. set(HAVE_LOCKS OFF)
  64. set(RAW_BLOCKS_TYPE "freelist")
  65. set(ORDERING_POLICY "lifo")
  66. set(FITTING_POLICY "first")
  67. set(WITH_COALESCING "never")
  68. set(WITH_SPLITTING "never")
  69. set(WITH_REALLOC OFF)
  70. set(WITH_CALLOC OFF)
  71. set(WITH_MEMALIGN OFF)
  72. set(WITH_KNOBS OFF)
  73. set(STATS "none")
  74. set(REQUEST_SIZE_INFO OFF)
  75. set(WITH_MEM_TRACE OFF)
  76. set(WITH_STATS_TRACE OFF)
  77. set(WITH_STATIC_LIB ON)
  78. set(WITH_SHARED_LIB OFF)
  79. set(PARSE_ENV OFF)
  80. set(WITH_EXAMPLES OFF)
  81. set(WITH_DOC OFF)
  82. endif(LEON3)
  83. if(LINUX)
  84. set(WITH_SYSTEM_CALLS "mmap")
  85. set(SYS_ALLOC_SIZE 32768)
  86. set(HAVE_LOCKS ON)
  87. set(RAW_BLOCKS_TYPE "freelist")
  88. set(ORDERING_POLICY "lifo")
  89. set(FITTING_POLICY "good")
  90. set(GOOD_FIT_PERCENTAGE 0.8)
  91. set(WITH_COALESCING "variable")
  92. set(MAX_COAL_SIZE 60000)
  93. set(WITH_SPLITTING "variable")
  94. set(MIN_SPLIT_SIZE 64)
  95. set(FREELIST_COALESCE_AFTER_SPLIT ON)
  96. set(WITH_REALLOC ON)
  97. set(WITH_CALLOC ON)
  98. set(WITH_MEMALIGN ON)
  99. set(WITH_KNOBS ON)
  100. set(STATS "global")
  101. set(REQUEST_SIZE_INFO ON)
  102. set(WITH_MEM_TRACE ON)
  103. set(WITH_STATS_TRACE ON)
  104. set(WITH_SHARED_LIB ON)
  105. set(WITH_STATIC_LIB ON)
  106. set(PARSE_ENV ON)
  107. set(WITH_EXAMPLES ON)
  108. set(WITH_DOC ON)
  109. endif(LINUX)