1
# Copyright (c) 2009 Red Hat, Inc.
3
# Authors: Andrew Beekhof
4
# Steven Dake (sdake@redhat.com)
6
# This software licensed under BSD license, the text of which follows:
8
# Redistribution and use in source and binary forms, with or without
9
# modification, are permitted provided that the following conditions are met:
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.
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.
32
MAINTAINERCLEANFILES = Makefile.in
36
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include $(nss_CFLAGS)
38
TOTEM_SRC = coropoll.c totemip.c totemnet.c totemrrp.c \
39
totemsrp.c totemmrp.c totempg.c crypto.c wthread.c
40
LOGSYS_SRC = wthread.c logsys.c
41
COROIPCS_SRC = coroipcs.c
43
LCRSO_SRC = objdb.c vsf_ykd.c coroparse.c vsf_quorum.c
44
LCRSO_OBJS = $(LCRSO_SRC:%.c=%.o)
45
LCRSO = $(LCRSO_SRC:%.c=%.lcrso)
47
lib_LIBRARIES = libtotem_pg.a liblogsys.a libcoroipcs.a
48
sbin_PROGRAMS = corosync
50
libtotem_pg_a_SOURCES = $(TOTEM_SRC)
51
liblogsys_a_SOURCES = $(LOGSYS_SRC)
52
libcoroipcs_a_SOURCES = $(COROIPCS_SRC)
54
corosync_SOURCES = main.c util.c sync.c apidef.c service.c \
55
timer.c totemconfig.c mainconfig.c quorum.c schedwrk.c \
56
../lcr/lcr_ifact.c evil.c syncv2.c
57
corosync_LDADD = -ltotem_pg -llogsys -lcoroipcs
58
corosync_DEPENDENCIES = libtotem_pg.so.$(SONAME) liblogsys.so.$(SONAME) libcoroipcs.so.$(SONAME)
59
corosync_LDFLAGS = $(OS_DYFLAGS) -L./
61
TOTEM_OBJS = $(TOTEM_SRC:%.c=%.o)
62
LOGSYS_OBJS = $(LOGSYS_SRC:%.c=%.o)
63
COROIPCS_OBJS = $(COROIPCS_SRC:%.c=%.o)
65
SHARED_LIBS = $(lib_LIBRARIES:%.a=%.so.$(SONAME))
66
SHARED_LIBS_SO = $(SHARED_LIBS:%.so.$(SONAME)=%.so)
67
SHARED_LIBS_SO_TWO = $(SHARED_LIBS:%.so.$(SONAME)=%.so.$(SOMAJOR))
69
noinst_HEADERS = apidef.h crypto.h mainconfig.h main.h \
70
quorum.h service.h sync.h timer.h tlist.h totemconfig.h \
71
totemmrp.h totemnet.h totemrrp.h totemsrp.h util.h \
72
version.h vsf.h wthread.h schedwrk.h evil.h syncv2.h
74
EXTRA_DIST = $(LCRSO_SRC)
78
$(CC) $(CFLAGS) -L$(top_builddir)/exec -llogsys -bundle -bind_at_load -bundle_loader ./corosync $^ -o $@
80
libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
81
$(CC) $(LDFLAGS) $(DARWIN_OPTS) $(TOTEM_OBJS) -o $@ -lpthread
82
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
83
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
85
liblogsys.so.$(SONAME): $(LOGSYS_OBJS)
86
$(CC) $(LDFLAGS) $(DARWIN_OPTS) $(LOGSYS_OBJS) -o $@ -lpthread
87
ln -sf liblogsys.so.$(SONAME) liblogsys.so
88
ln -sf liblogsys.so.$(SONAME) liblogsys.so.$(SOMAJOR)
90
libcoroipcs.so.$(SONAME): $(COROIPCS_OBJS)
91
$(CC) $(LDFLAGS) $(DARWIN_OPTS) $(COROIPCS_OBJS) -o $@ -lpthread
92
ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so
93
ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so.$(SOMAJOR)
101
libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
102
$(LD) -G $(TOTEM_OBJS) -o $@ -lpthread
103
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
104
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
106
liblogsys.so.$(SONAME): $(LOGSYS_OBJS)
107
$(LD) -G $(LOGSYS_OBJS) -o $@ -lpthread
108
ln -sf liblogsys.so.$(SONAME) liblogsys.so
109
ln -sf liblogsys.so.$(SONAME) liblogsys.so.$(SOMAJOR)
111
libcoroipcs.so.$(SONAME): $(COROIPCS_OBJS)
112
$(LD) -G $(COROIPCS_OBJS) -o $@ -lpthread
113
ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so
114
ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so.$(SOMAJOR)
119
$(CC) $(CFLAGS) -shared -Wl,-soname=$@ $^ -o $@
121
libtotem_pg.so.$(SONAME): $(TOTEM_OBJS)
122
$(CC) -shared -o $@ \
123
-Wl,-soname=libtotem_pg.so.$(SOMAJOR) \
124
$^ $(LDFLAGS) $(nss_LIBS) -lpthread
125
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so
126
ln -sf libtotem_pg.so.$(SONAME) libtotem_pg.so.$(SOMAJOR)
128
liblogsys.so.$(SONAME): $(LOGSYS_OBJS)
129
$(CC) -shared -o $@ \
130
-Wl,-soname=liblogsys.so.$(SOMAJOR) \
131
$^ $(LDFLAGS) -lpthread
132
ln -sf liblogsys.so.$(SONAME) liblogsys.so
133
ln -sf liblogsys.so.$(SONAME) liblogsys.so.$(SOMAJOR)
135
libcoroipcs.so.$(SONAME): $(COROIPCS_OBJS)
136
$(CC) -shared -o $@ \
137
-Wl,-soname=libcoroipcs.so.$(SOMAJOR) \
138
$^ $(LDFLAGS) -lpthread
139
ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so
140
ln -sf libcoroipcs.so.$(SONAME) libcoroipcs.so.$(SOMAJOR)
147
-splint $(LINT_FLAGS) $(CFLAGS) *.c
149
all-local: $(LCRSO_OBJS) $(LCRSO) $(SHARED_LIBS)
150
@echo Built corosync Executive
153
$(INSTALL) -d $(DESTDIR)/$(libdir)
154
$(INSTALL) -m 755 $(SHARED_LIBS) $(DESTDIR)/$(libdir)
155
$(CP) -a $(SHARED_LIBS_SO) $(SHARED_LIBS_SO_TWO) $(DESTDIR)/$(libdir)
156
$(INSTALL) -d $(DESTDIR)/$(LCRSODIR)
157
$(INSTALL) -m 755 $(LCRSO) $(DESTDIR)/$(LCRSODIR)
160
cd $(DESTDIR)/$(libdir) && \
161
rm -f $(SHARED_LIBS) $(SHARED_LIBS_SO) $(SHARED_LIBS_SO_TWO)
162
cd $(DESTDIR)/$(LCRSODIR) && \
166
rm -f corosync *.o *.lcrso gmon.out *.da *.bb *.bbg *.so*