1 # TOP level 'src' makefile for OpenSRF
4 export TMPDIR = $(TMP)/opensrf
5 export OPENSRF = opensrf
6 export BINDIR = $(PREFIX)/bin
7 export LIBDIR = $(PREFIX)/lib
8 export PERLDIR = $(LIBDIR)/perl5
9 export INCLUDEDIR = $(PREFIX)/include
12 export LDFLAGS += -L $(TMPDIR) -L . -L /opt/lib
13 export CFLAGS += -pipe -g -Wall -O2 -fPIC -I$(LIBXML2_HEADERS) -I$(APACHE2_HEADERS) \
14 -I$(LIBXML2_HEADERS)/libxml -I$(TMP) \
15 -I$(APR_HEADERS) -I$(TMPDIR)
17 LIBOPENSRF = libopensrf.so
19 OPENSRF_TARGETS = libtransport/transport_session.o \
20 libtransport/transport_client.o \
21 libtransport/transport_message.o \
22 libstack/osrf_app_session.o \
23 libstack/osrf_stack.o \
24 libstack/osrfConfig.o \
25 libstack/osrf_settings.o \
26 libstack/osrf_message.o \
27 libstack/osrf_prefork.o \
28 libstack/osrf_system.o \
29 libstack/osrf_application.o \
30 libstack/osrf_cache.o \
31 libstack/xml_utils.o \
32 libstack/osrf_transgroup.o \
33 libstack/osrf_list.o \
34 libstack/osrf_big_list.o \
35 libstack/osrf_hash.o \
36 libstack/osrf_big_hash.o \
37 utils/socket_bundle.o \
38 utils/string_array.o \
44 OPENSRF_HEADERS = libtransport/transport_session.h \
45 libtransport/transport_client.h \
46 libtransport/transport_message.h \
47 libstack/osrf_app_session.h \
48 libstack/osrf_stack.h \
49 libstack/osrfConfig.h \
50 libstack/osrf_settings.h \
51 libstack/osrf_message.h \
52 libstack/osrf_prefork.h \
53 libstack/osrf_system.h \
54 libstack/osrf_application.h \
55 libstack/osrf_cache.h \
56 libstack/xml_utils.h \
57 libstack/osrf_transgroup.h \
58 libstack/osrf_list.h \
59 libstack/osrf_big_list.h \
60 libstack/osrf_hash.h \
61 libstack/osrf_big_hash.h \
62 utils/socket_bundle.h \
63 utils/string_array.h \
78 install: install-prep \
90 libopensrf.so: objson/libobjson.so
98 $(CC) -shared -W1 $(LDFLAGS) -lJudy -lxml2 -lmemcache -lobjson $(OPENSRF_TARGETS) -o $(TMPDIR)/$(LIBOPENSRF)
103 opensrf-install: objson-install
105 cp $(TMPDIR)/$(LIBOPENSRF) $(LIBDIR)/$(LIBOPENSRF)
106 cp $(OPENSRF_HEADERS) $(INCLUDEDIR)/opensrf/
107 cp libstack/opensrf $(BINDIR)/opensrf-c
108 make -C c-apps install
111 objson/libobjson.so: prep
115 # --------------------------------------------------------------------------------
117 # --------------------------------------------------------------------------------
118 libstack/opensrf.o: libstack/opensrf.c libopensrf.so
119 libstack/opensrf: libstack/opensrf.o
121 $(CC) $(CFLAGS) $(LDFLAGS) -lJudy -lxml2 -lopensrf -lobjson libstack/opensrf.o -o $@
124 router: libopensrf.so
132 gateway: libopensrf.so
136 jserver: libopensrf.so
141 # --------------------------------------------------------------------------------
143 # --------------------------------------------------------------------------------
149 mkdir -p $(INCLUDEDIR)
150 mkdir -p $(INCLUDEDIR)/$(OPENSRF)
152 mkdir -p $(TEMPLATEDIR)
154 objson-install: install-prep
156 make -C objson install
158 libopensrf-install: install-prep
160 cp $(TMPDIR)/$(LIBOPENSRF) $(LIBDIR)
162 gateway-install: install-prep opensrf-install
164 make -C gateway install
166 router-install: install-prep opensrf-install
168 make -C router install
170 srfsh-install: install-prep opensrf-install
172 make -C srfsh install
174 jserver-install: install-prep
176 make -C jserver install
178 perl-install: install-prep
180 cp -r perlmods/* $(PERLDIR)/
181 cp ../examples/bootstrap.conf.example $(ETCDIR)
182 cp ../bin/opensrf_ctl $(BINDIR)
183 cp ../bin/opensrf_all $(BINDIR)
184 cp ../examples/opensrf.xml.example $(ETCDIR)
185 cp ../examples/opensrf_core.xml.example $(ETCDIR)
186 cp ../examples/srfsh.xml.example $(ETCDIR)
189 # --------------------------------------------------------------------------------
191 # --------------------------------------------------------------------------------
194 make -C libtransport clean
195 make -C libstack clean
197 make -C gateway clean
198 make -C jserver clean
203 echo "Removing directory [$(TMPDIR)]"
204 /bin/rm -rf $(TMPDIR) *.o