Makefile.am 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. # Copyright (c) 2009 Red Hat, Inc.
  2. #
  3. # Authors: Andrew Beekhof
  4. # Steven Dake (sdake@redhat.com)
  5. #
  6. # This software licensed under BSD license, the text of which follows:
  7. #
  8. # Redistribution and use in source and binary forms, with or without
  9. # modification, are permitted provided that the following conditions are met:
  10. #
  11. # - Redistributions of source code must retain the above copyright notice,
  12. # this list of conditions and the following disclaimer.
  13. # - Redistributions in binary form must reproduce the above copyright notice,
  14. # this list of conditions and the following disclaimer in the documentation
  15. # and/or other materials provided with the distribution.
  16. # - Neither the name of the MontaVista Software, Inc. nor the names of its
  17. # contributors may be used to endorse or promote products derived from this
  18. # software without specific prior written permission.
  19. #
  20. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21. # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  22. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  23. # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  24. # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  25. # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  26. # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  27. # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  28. # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  29. # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  30. # THE POSSIBILITY OF SUCH DAMAGE.
  31. MAINTAINERCLEANFILES = Makefile.in
  32. AM_CFLAGS = -fPIC
  33. INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include $(nss_CFLAGS) $(rdmacm_CFLAGS) $(ibverbs_CFLAGS)
  34. TOTEM_SRC = coropoll.c totemip.c totemnet.c totemudp.c \
  35. totemudpu.c totemrrp.c totemsrp.c totemmrp.c \
  36. totempg.c crypto.c wthread.c
  37. if BUILD_RDMA
  38. TOTEM_SRC += totemiba.c
  39. endif
  40. LOGSYS_SRC = wthread.c logsys.c
  41. COROIPCS_SRC = coroipcs.c
  42. LCRSO_SRC = objdb.c vsf_ykd.c coroparse.c vsf_quorum.c
  43. LCRSO_OBJS = $(LCRSO_SRC:%.c=%.o)
  44. LCRSO = $(LCRSO_SRC:%.c=%.lcrso)
  45. lib_LIBRARIES = libtotem_pg.a liblogsys.a libcoroipcs.a
  46. sbin_PROGRAMS = corosync
  47. libtotem_pg_a_SOURCES = $(TOTEM_SRC)
  48. liblogsys_a_SOURCES = $(LOGSYS_SRC)
  49. libcoroipcs_a_SOURCES = $(COROIPCS_SRC)
  50. corosync_SOURCES = main.c util.c sync.c apidef.c service.c \
  51. timer.c totemconfig.c mainconfig.c quorum.c schedwrk.c \
  52. ../lcr/lcr_ifact.c evil.c syncv2.c
  53. corosync_LDADD = -ltotem_pg -llogsys -lcoroipcs
  54. corosync_DEPENDENCIES = libtotem_pg.so.$(SONAME) liblogsys.so.$(SONAME) libcoroipcs.so.$(SONAME)
  55. corosync_LDFLAGS = $(OS_DYFLAGS) -L./
  56. TOTEM_OBJS = $(TOTEM_SRC:%.c=%.o)
  57. LOGSYS_OBJS = $(LOGSYS_SRC:%.c=%.o)
  58. COROIPCS_OBJS = $(COROIPCS_SRC:%.c=%.o)
  59. SHARED_LIBS = $(lib_LIBRARIES:%.a=%.so.$(SONAME))
  60. SHARED_LIBS_SO = $(SHARED_LIBS:%.so.$(SONAME)=%.so)
  61. SHARED_LIBS_SO_TWO = $(SHARED_LIBS:%.so.$(SONAME)=%.so.$(SOMAJOR))
  62. noinst_HEADERS = apidef.h crypto.h mainconfig.h main.h \
  63. quorum.h service.h sync.h timer.h tlist.h \
  64. totemconfig.h totemmrp.h totemnet.h totemudp.h \
  65. totemudpu.h totemiba.h totemrrp.h totemsrp.h util.h \
  66. vsf.h wthread.h schedwrk.h evil.h syncv2.h
  67. EXTRA_DIST = $(LCRSO_SRC)
  68. if BUILD_DARWIN
  69. %.lcrso: %.o
  70. $(CC) $(LDFLAGS) $(CFLAGS) -L$(top_builddir)/exec -llogsys -bundle -bind_at_load -bundle_loader ./corosync $^ -o $@
  71. libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
  72. $(CC) $(LDFLAGS) $(DARWIN_OPTS) $(TOTEM_OBJS) -o $@ -lpthread
  73. ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
  74. ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
  75. liblogsys.so.$(SONAME): $(LOGSYS_OBJS)
  76. $(CC) $(LDFLAGS) $(DARWIN_OPTS) $(LOGSYS_OBJS) -o $@ -lpthread
  77. ln -sf liblogsys.so.$(SONAME) liblogsys.so
  78. ln -sf liblogsys.so.$(SONAME) liblogsys.so.$(SOMAJOR)
  79. libcoroipcs.so.$(SONAME): $(COROIPCS_OBJS)
  80. $(CC) $(LDFLAGS) $(DARWIN_OPTS) $(COROIPCS_OBJS) -o $@ -lpthread
  81. ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so
  82. ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so.$(SOMAJOR)
  83. else
  84. if BUILD_SOLARIS
  85. %.lcrso: %.o
  86. $(LD) $(LDFLAGS) -G $^ -o $@
  87. libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
  88. $(LD) $(LDFLAGS) -G $(TOTEM_OBJS) -o $@ -lpthread
  89. ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
  90. ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
  91. liblogsys.so.$(SONAME): $(LOGSYS_OBJS)
  92. $(LD) $(LDFLAGS) -G $(LOGSYS_OBJS) -o $@ -lpthread
  93. ln -sf liblogsys.so.$(SONAME) liblogsys.so
  94. ln -sf liblogsys.so.$(SONAME) liblogsys.so.$(SOMAJOR)
  95. libcoroipcs.so.$(SONAME): $(COROIPCS_OBJS)
  96. $(LD) $(LDFLAGS) -G $(COROIPCS_OBJS) -o $@ -lpthread
  97. ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so
  98. ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so.$(SOMAJOR)
  99. else
  100. %.lcrso: %.o
  101. $(CC) $(LDFLAGS) $(CFLAGS) $(COVERAGE_LCRSO_EXTRA_LDFLAGS) -shared -Wl,-soname=$@ $^ -o $@
  102. libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
  103. $(CC) -shared -o $@ \
  104. -Wl,-soname=libtotem_pg.so.$(SOMAJOR) \
  105. $(LDFLAGS) $^ $(nss_LIBS) $(rdmacm_LIBS) $(ibverbs_LIBS) -lpthread
  106. ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
  107. ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
  108. liblogsys.so.$(SONAME): $(LOGSYS_OBJS)
  109. $(CC) -shared -o $@ \
  110. -Wl,-soname=liblogsys.so.$(SOMAJOR) \
  111. $(LDFLAGS) $^ -lpthread
  112. ln -sf liblogsys.so.$(SONAME) liblogsys.so
  113. ln -sf liblogsys.so.$(SONAME) liblogsys.so.$(SOMAJOR)
  114. libcoroipcs.so.$(SONAME): $(COROIPCS_OBJS)
  115. $(CC) -shared -o $@ \
  116. -Wl,-soname=libcoroipcs.so.$(SOMAJOR) \
  117. $(LDFLAGS) $^ -lpthread
  118. ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so
  119. ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so.$(SOMAJOR)
  120. endif
  121. endif
  122. lint:
  123. -splint $(INCLUDES) $(LINT_FLAGS) $(CFLAGS) *.c
  124. all-local: $(LCRSO_OBJS) $(LCRSO) $(SHARED_LIBS)
  125. @echo Built corosync Executive
  126. install-exec-local:
  127. $(INSTALL) -d $(DESTDIR)/$(libdir)
  128. $(INSTALL) -m 755 $(SHARED_LIBS) $(DESTDIR)/$(libdir)
  129. $(CP) -a $(SHARED_LIBS_SO) $(SHARED_LIBS_SO_TWO) $(DESTDIR)/$(libdir)
  130. $(INSTALL) -d $(DESTDIR)/$(LCRSODIR)
  131. $(INSTALL) -m 755 $(LCRSO) $(DESTDIR)/$(LCRSODIR)
  132. uninstall-local:
  133. cd $(DESTDIR)/$(libdir) && \
  134. rm -f $(SHARED_LIBS) $(SHARED_LIBS_SO) $(SHARED_LIBS_SO_TWO)
  135. cd $(DESTDIR)/$(LCRSODIR) && \
  136. rm -f $(LCRSO)
  137. clean-local:
  138. rm -f corosync *.o *.lcrso gmon.out *.da *.bb *.bbg *.so*