Makefile.inc 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. # Common options
  2. PREFIX=/usr
  3. DESTDIR=
  4. LCRSODIR=$(PREFIX)/libexec/lcrso
  5. # Do not modify below this line
  6. # Basic OS detection
  7. #
  8. UNAME=$(shell uname)
  9. CP=cp
  10. ifeq "$(UNAME)" "Linux"
  11. COROSYNC_COMPAT=LINUX
  12. endif
  13. ifeq "$(UNAME)" "Darwin"
  14. COROSYNC_COMPAT=DARWIN
  15. CP=rsync
  16. endif
  17. ifneq "" "$(findstring BSD,$(UNAME))"
  18. COROSYNC_COMPAT=BSD
  19. endif
  20. ifeq "$(UNAME)" "SunOS"
  21. COROSYNC_COMPAT=SOLARIS
  22. # Note that CC must be set to gcc compiled to link with gnu-ld
  23. endif
  24. ifndef COROSYNC_COMPAT
  25. $(error "COROSYNC_COMPAT cannot be detected, it must be manually defined")
  26. endif
  27. # BUILD_DYNAMIC can be defined to 1 to build for dynamic loading of service
  28. # handler modules. If the developer intends to debug, building without
  29. # dynamic modules should provide an easier route.
  30. ifndef BUILD_DYNAMIC
  31. BUILD_DYNAMIC=1
  32. endif
  33. # COROSYNC_BUILD can be defined as RELEASE or DEBUG
  34. #
  35. ifndef COROSYNC_BUILD
  36. COROSYNC_BUILD=DEBUG
  37. endif
  38. # COROSYNC_PROFILE
  39. # default CFLAGS, LDFLAGS
  40. #
  41. CFLAGS =
  42. LDFLAGS =
  43. DYFLAGS =
  44. override CFLAGS += -DLCRSODIR='"$(LCRSODIR)"'
  45. # Adding the TS_CLASS flag enables not being scheduled RR
  46. #CFLAGS += -DTS_CLASS
  47. # build CFLAGS, LDFLAGS
  48. #
  49. ifeq (${COROSYNC_BUILD}, RELEASE)
  50. CFLAGS += -O3 -Wall
  51. # -Wstrict-aliasing=2 TODO sameday fix all of these
  52. ifndef COROSYNC_PROFILE
  53. CFLAGS += -fomit-frame-pointer
  54. endif
  55. LDFLAGS +=
  56. endif
  57. ifeq (${COROSYNC_BUILD}, DEBUG)
  58. CFLAGS += -O0 -g -Wall -DDEBUG --time
  59. LDFLAGS += -g
  60. ifeq (${COROSYNC_COMPAT}, SOLARIS)
  61. CFLAGS += -Werror -DTS_CLASS
  62. endif
  63. endif
  64. ifeq (${COROSYNC_BUILD}, COVERAGE)
  65. CFLAGS += -O0 -g -ftest-coverage -fprofile-arcs
  66. LDFLAGS += -g -ftest-coverage -fprofile-arcs
  67. BUILD_DYNAMIC=0
  68. endif
  69. ifdef COROSYNC_PROFILE
  70. CFLAGS += -pg
  71. LDFLAGS += -pg
  72. endif
  73. # platform specific CFLAGS, LDFLAGS
  74. #
  75. ifeq (${COROSYNC_COMPAT}, LINUX)
  76. override CFLAGS += -DCOROSYNC_LINUX
  77. override LDFLAGS += -ldl -lpthread
  78. override DYFLAGS += -rdynamic
  79. endif
  80. ifeq (${COROSYNC_COMPAT}, BSD)
  81. override CFLAGS += -DCOROSYNC_BSD
  82. override LDFLAGS += -pthread
  83. override DYFLAGS += -export-dynamic
  84. endif
  85. ifeq (${COROSYNC_COMPAT}, DARWIN)
  86. override CFLAGS += -DCOROSYNC_DARWIN
  87. override LDFLAGS += -lpthread
  88. endif
  89. ifeq (${COROSYNC_COMPAT}, SOLARIS)
  90. override CFLAGS += -DCOROSYNC_SOLARIS -D_REENTRANT
  91. override LDFLAGS += -lpthread
  92. # See http://sources.redhat.com/ml/bug-gnu-utils/2000-07/msg00168.html
  93. override LDFLAGS += -Wl,--export-dynamic -Wl,-rpath-link=/usr/lib
  94. ifeq ($(shell uname -r), 5.10)
  95. override CFLAGS += -DHAVE_GETPEERUCRED -DHAVE_SCANDIR -DHAVE_ALPHASORT
  96. endif
  97. ifeq ($(shell uname -r), 5.11)
  98. override CFLAGS += -DHAVE_GETPEERUCRED -DHAVE_SCANDIR -DHAVE_ALPHASORT
  99. endif
  100. endif
  101. VPATH:=. $(srcdir) $(srcdir)$(subdir)
  102. override CFLAGS += -I$(srcdir)include -I$(srcdir)$(subdir)