Makefile.inc 3.0 KB

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