root / Mulberry / trunk / Build / Makefile

Revision 43, 6.6 kB (checked in by daboo, 2 years ago)

Tweaks to add update and run targets.

Line 
1# Makefile for Mulberry builds
2
3include make.local
4include make.version
5
6DEVHOME=../..
7MULBERRY_DIR := ..
8
9APP_DIR := ${MULBERRY_DIR}/Linux
10APP_NAME := mulberry
11
12PLUGINS_DIR := ${MULBERRY_DIR}/Plug-ins
13PLUGINLIB_DIR := ${PLUGINS_DIR}/PluginLibrary
14
15JX_DIR := ${DEVHOME}/JX
16
17BITS_DIR := ./Bits
18TIMEZONE_DIR := ./Bits/Timezones
19RESOURCES_DIR := ${MULBERRY_DIR}/Sources_Common/Resources
20LICENSE_FILE := Mulberry_License
21CHANGES_FILE := CHANGES
22CHANGES_FILE_DEV := CHANGES-DEV
23CHANGES_FILE_V3 := CHANGES-v3
24CHANGES_FILE_DEV_V3 := CHANGES-DEV-v3
25CHANGES_FILE_V4 := CHANGES-v4
26CHANGES_FILE_DEV_V4 := CHANGES-DEV-v4
27
28OS_NAME := $(shell echo "`uname -s`")
29ifeq (${OS_NAME},SunOS)
30PROC_NAME := -$(shell echo "`uname -p`")
31REL_NAME := -$(shell echo "`uname -r`")
32else
33ifeq (${OS_NAME},Linux)
34PROC_NAME := -$(shell echo "`uname -m`")
35KERNEL := $(shell echo "`uname -r`")
36REL_NAME := 
37endif
38endif
39
40RELEASE_NAME := ${OS_NAME}${PROC_NAME}${REL_NAME}
41RELEASE_DIR := ./${RELEASE_NAME}
42LIB_DIR := ${RELEASE_DIR}/lib
43HIDDEN_DIR := .mulberry
44PLUGIN_RELEASE_DIR := ${RELEASE_DIR}/${HIDDEN_DIR}/Plug-ins
45RESOURCE_RELEASE_DIR := ${RELEASE_DIR}/${HIDDEN_DIR}/Resources
46TIMEZONE_RELEASE_DIR := ${PLUGIN_RELEASE_DIR}/Timezones
47LINK_DIR := ./obj
48RPM_DIR := ./rpmdir
49RPM_SOURCES_DIR := ${RPM_DIR}/SOURCES
50RPM_BUILD_DIR := ${RPM_DIR}/BUILD
51
52TAR_FILE := mulberry-${MUL_VERSION}-${ARCHIVE_SUFFIX}.tar
53GZIP_FILE := mulberry-${MUL_VERSION}-${ARCHIVE_SUFFIX}.tgz
54
55TAR_ITEMS := ${APP_NAME} ${LICENSE_FILE} ${HIDDEN_DIR}
56TAR_ITEMS_LIB := ${APP_NAME} ${LICENSE_FILE} ${HIDDEN_DIR} lib
57
58ACE_LIB := ${JX_DIR}/ACE/ACE_wrappers/ace/libACE.so
59ACE_LIB_RENAME := libACE-5_4_7.so
60JCORE_LIB := ${JX_DIR}/libjcore/libjcore-2_5_0.so
61JX_LIB := ${JX_DIR}/libjx/libjx-2_5_0.so
62STL_LIB := ${DEVHOME}/STLport/lib/libstlport_gcc.so
63GCCSTD_LIB := /usr/local/lib/libstdc++.so.2.10.0
64
65STATIC_FLAGS := static=1
66NODEBUG_FLAGS := nodebug=1
67
68help:
69        @echo "Targets:"
70        @echo "svnjx    - do SVN update of JX."
71        @echo "jx       - build the JX Libraries."
72        @echo "svn      - do svn update of all mulberry files."
73        @echo ""
74        @echo "static   - build static application package."
75        @echo "staticcw - build static application package without app build"
76        @echo ""
77        @echo "staticnoplugins     - build static application package without plugin build"
78        @echo "staticnopluginscw   - build static application package without app/plugin build"
79        @echo ""
80        @echo "rpm      - build binary rpm package."
81        @echo ""
82
83svnjx:
84        @echo "--> Updating JX"
85        @(cd ${JX_DIR}; svn update)
86
87jx:
88        @echo "--> Building JX"
89        @(cd ${JX_DIR}; ./build)
90
91svn:
92        @echo "--> Updating Libraries"
93        @(cd ${DEVHOME}/Libraries/CICalendar; svn update)
94        @(cd ${DEVHOME}/Libraries/XMLLib; svn update)
95        @echo "--> Updating Sources_Common"
96        @(cd ${MULBERRY_DIR}/Sources_Common; svn update)
97        @echo "--> Updating Linux"
98        @(cd ${MULBERRY_DIR}/Linux; svn update)
99        @echo "--> Updating Plug-ins"
100        @(cd ${MULBERRY_DIR}/Plug-ins; svn update)
101        @echo "--> Updating Bits"
102        @(svn update make.version)
103        @(cd Bits; svn update)
104
105static: cleanrelease plugins appstatic archivestatic
106staticcw: cleanrelease plugins appstaticcw archivestatic
107
108staticnoplugins: cleanrelease pluginsnobuild appstatic archivestatic
109staticnopluginscw: cleanrelease pluginsnobuild appstaticcw archivestatic
110
111dynamic: cleanrelease plugins app lib archivedynamic
112
113cleanall: cleanapp cleanplugins cleanrelease
114
115cleanmost: cleanplugins cleanrelease
116
117cleanapp:
118        @echo ""
119        @echo "--> Removing current mulberry binary"
120        @rm -f ${APP_DIR}/${APP_NAME}
121
122cleanplugins:
123        @echo ""
124        @echo "--> Removing current plugins"
125        @(cd ${PLUGINS_DIR}; ${MAKE} clean)
126        @rm -f ${PLUGINS_DIR}/*/*Plugin.so
127        @rm -f ${PLUGINLIB_DIR}/*.a
128
129cleanrelease:
130        @echo ""
131        @echo "--> Removing ${RELEASE_NAME}"
132        @rm -rf ${RELEASE_DIR}
133        @rm -f ${LINK_DIR}
134        @echo "--> Creating ${RELEASE_NAME}"
135        @mkdir ${RELEASE_DIR}
136        @mkdir ${RELEASE_DIR}/${HIDDEN_DIR}
137        @mkdir ${RESOURCE_RELEASE_DIR}
138        @ln -s ${RELEASE_DIR} ${LINK_DIR}
139
140plugins:
141        @echo "-->Building Plugins"
142        @rm -rf ${PLUGIN_RELEASE_DIR}; mkdir ${PLUGIN_RELEASE_DIR}
143        @(cd ${PLUGINS_DIR}; ${MAKE} all)
144        @echo "-->Copying Plugins"
145        @cp ${PLUGINS_DIR}/*/*Plugin.so ${PLUGIN_RELEASE_DIR}
146        @strip ${PLUGIN_RELEASE_DIR}/*Plugin.so
147
148pluginsnobuild:
149        @echo "-->Copying Plugins"
150        @cp ${PLUGINS_DIR}/*/*Plugin.so ${PLUGIN_RELEASE_DIR}
151        @strip ${PLUGIN_RELEASE_DIR}/*Plugin.so
152
153appstatic:
154        @${MAKE} "BUILD_STATIC=1" app
155
156appstaticcw:
157        @${MAKE} "BUILD_STATIC=1" appcw
158
159app:
160        @echo ""
161        @echo "-->Building Mulberry"
162        @rm -f ${RELEASE_DIR}/${APP_NAME}
163        @(cd ${APP_DIR}; ${MAKE})
164        @echo "-->Copying Mulberry"
165        @cp ${APP_DIR}/${APP_NAME} ${RELEASE_DIR}
166        @strip ${RELEASE_DIR}/${APP_NAME}
167
168appcw:
169        @echo ""
170        @echo "-->Assuming Mulberry is Already Built"
171        @rm -f ${RELEASE_DIR}/${APP_NAME}
172        @echo "-->Copying Mulberry"
173        @cp ${APP_DIR}/${APP_NAME} ${RELEASE_DIR}
174        @strip ${RELEASE_DIR}/${APP_NAME}
175
176bits:
177        @echo ""
178        @echo "-->Copying Bits to appropriate locations"
179        @cp ${BITS_DIR}/${LICENSE_FILE} ${RELEASE_DIR}
180        @cp -r ${BITS_DIR}/icons ${RELEASE_DIR}/${HIDDEN_DIR}
181        @rm -rf ${RELEASE_DIR}/${HIDDEN_DIR}/icons/CVS
182        @cp ${RESOURCES_DIR}/*.xml ${RESOURCE_RELEASE_DIR}
183        @cp -r ${TIMEZONE_DIR} ${PLUGIN_RELEASE_DIR}
184        @rm -rf ${TIMEZONE_RELEASE_DIR}/CVS
185        @rm -rf ${TIMEZONE_RELEASE_DIR}/.AppleDouble
186        @cp ${BITS_DIR}/${CHANGES_FILE} ${RELEASE_DIR}/${HIDDEN_DIR}
187        @cp ${BITS_DIR}/${CHANGES_FILE_DEV} ${RELEASE_DIR}/${HIDDEN_DIR}
188        @cp ${BITS_DIR}/${CHANGES_FILE_V3} ${RELEASE_DIR}/${HIDDEN_DIR}
189        @cp ${BITS_DIR}/${CHANGES_FILE_DEV_V3} ${RELEASE_DIR}/${HIDDEN_DIR}
190        @cp ${BITS_DIR}/${CHANGES_FILE_V4} ${RELEASE_DIR}/${HIDDEN_DIR}
191        @cp ${BITS_DIR}/${CHANGES_FILE_DEV_V4} ${RELEASE_DIR}/${HIDDEN_DIR}
192
193lib:
194        @echo ""
195        @echo "-->Copying dynamic libraries to appropriate locations"
196        @rm -rf ${LIB_DIR}
197        @mkdir ${LIB_DIR}
198        @cp ${ACE_LIB} ${LIB_DIR}/${ACE_LIB_RENAME}
199        @cp ${JCORE_LIB} ${LIB_DIR}/
200        @cp ${JX_LIB} ${LIB_DIR}/
201        @cp ${STL_LIB} ${LIB_DIR}/
202        @cp ${GCCSTD_LIB} ${LIB_DIR}/
203        @strip ${LIB_DIR}/*
204
205archivestatic: bits
206        @(cd ${RELEASE_DIR}; \
207        echo ""; \
208        echo "-->Creating tar file"; \
209        rm -f ${TAR_FILE} ${GZIP_FILE}; \
210        tar cf ${TAR_FILE} ${TAR_ITEMS}; \
211        echo "-->Creating gzip file"; \
212        gzip -c ${TAR_FILE} > ${GZIP_FILE}; \
213        rm -f ${TAR_FILE})
214
215archivedynamic: bits
216        @(cd ${RELEASE_DIR}; \
217        echo ""; \
218        echo "-->Creating tar file"; \
219        rm -f ${TAR_FILE} ${GZIP_FILE}; \
220        tar cf ${TAR_FILE} ${TAR_ITEMS_LIB}; \
221        echo "-->Creating gzip file"; \
222        gzip -c ${TAR_FILE} > ${GZIP_FILE}; \
223        rm -f ${TAR_FILE})
224
225rpm:
226        echo ""
227        echo "-->Creating rpm file"
228        @rm -rf ${RPM_DIR}
229        @mkdir ${RPM_DIR}
230        @mkdir ${RPM_SOURCES_DIR}
231        @touch ${RPM_SOURCES_DIR}/mulberry.tar
232        @mkdir ${RPM_BUILD_DIR}
233        @rpm -bb ./mulberry.spec
234
235clean:
236        @rm -rf ${RELEASE_DIR}
237        @rm -rf ${RPM_DIR}
238
239install:
240        @cp ${RELEASE_DIR}/${GZIP_FILE} ~
241        @(cd ~; tar zxf ${GZIP_FILE}; rm ${GZIP_FILE})
242       
Note: See TracBrowser for help on using the browser.