]> git.evergreen-ils.org Git - Evergreen.git/blob - OpenSRF/src/Makefile
more smarter src makefile. does all of the dependency calculation in
[Evergreen.git] / OpenSRF / src / Makefile
1 # TOP level 'src' makefile for OpenSRF
2 #
3 #
4
5 # Change to suit...
6 export PREFIX           = /pines
7 export APXS                     = /pines/apps/apache2/bin/apxs
8 export TMP                      = /tmp/opensrf_build
9
10
11 export TMPDIR           = $(TMP)/opensrf
12 export OPENSRF          = opensrf
13 export BINDIR           = $(PREFIX)/bin
14 export LIBDIR           = $(PREFIX)/lib
15 export PERLDIR          = $(LIBDIR)/perl5
16 export INCLUDEDIR       = $(PREFIX)/include
17 export CC                       = gcc
18 export LD_OPTS          = -L $(TMPDIR) -L .
19 export CC_OPTS          = -Wall -O2 -fPIC -I /usr/include/libxml2 \
20                                                         -I /usr/include/libxml2/libxml  -I $(TMP) -I $(TMPDIR)
21
22
23 all: prep router srfsh jserver gateway
24
25 install: install-prep transport-install stack-install gateway-install   \
26                 router-install srfsh-install jserver-install perl-install                       \
27                 libjson-install objson-install utils-install info
28
29 prep:
30         mkdir -p $(TMPDIR)
31
32 # --------------------------------------------------------------------------------
33 # LIBS 
34 # --------------------------------------------------------------------------------
35 c_utils: prep
36         make -C utils
37
38 transport: c_utils
39         make -C libtransport
40
41 objson: c_utils
42         make -C objson
43
44 json: prep
45         make -C libjson
46
47 stack: json objson transport 
48         make -C libstack
49
50
51 # --------------------------------------------------------------------------------
52 # BINARIES
53 # --------------------------------------------------------------------------------
54 router: stack 
55         make -C router 
56
57 srfsh: stack
58         make -C srfsh
59
60 gateway:        stack 
61         make -C gateway
62
63 jserver: c_utils
64         make -C jserver
65
66
67 # --------------------------------------------------------------------------------
68 # INSTALL
69 # --------------------------------------------------------------------------------
70 install-prep:
71         @echo "Creating install directories"
72         mkdir -p $(LIBDIR)
73         mkdir -p $(BINDIR)
74         mkdir -p $(PERLDIR)
75         mkdir -p $(INCLUDEDIR)
76         mkdir -p $(INCLUDEDIR)/$(OPENSRF)
77
78 transport-install:
79         make -C libtransport install
80
81 libjson-install:
82         make -C libjson install
83
84 utils-install:
85         make -C utils install
86
87 objson-install:
88         make -C objson install
89
90 stack-install:
91         make -C libstack install
92
93 gateway-install:        
94         make -C gateway install
95
96 router-install: 
97         make -C router install
98
99 srfsh-install: 
100         make -C srfsh install
101
102 jserver-install:
103         make -C jserver install
104
105 perl-install:
106         cp -r perlmods/* $(PERLDIR)/
107
108
109 # --------------------------------------------------------------------------------
110 # INFO
111 # --------------------------------------------------------------------------------
112 info:
113         @echo
114         @echo "OpenSRF is installed in $(PREFIX)"
115         @echo ""
116         @echo "It may be helpful to set some environment variables if the install "
117         @echo "was set to a non-standard location.  These include:"
118         @echo ""
119         @echo "export LD_LIBRARY_PATH=\$$LD_LIBRARY_PATH:$(LIBDIR)"
120         @echo "export PERL5LIB=\$$PERL5LIB:$(PERLDIR)"
121         @echo "export PATH=\$$PATH:$(BINDIR)"
122         @echo ""
123
124
125 # --------------------------------------------------------------------------------
126 # CLEAN 
127 # --------------------------------------------------------------------------------
128 clean:
129         @echo "Cleaning..."
130         make -C libtransport clean
131         make -C libjson clean
132         make -C libstack clean
133         make -C router clean
134         make -C gateway clean
135         make -C jserver clean
136         make -C utils clean
137         make -C objson clean
138         make -C libjson clean
139         /bin/rm -rf $(TMPDIR)
140
141