| 1 | # Makefile for Mulberry builds |
|---|
| 2 | |
|---|
| 3 | include make.local |
|---|
| 4 | include make.version |
|---|
| 5 | |
|---|
| 6 | DEVHOME=../.. |
|---|
| 7 | MULBERRY_DIR := .. |
|---|
| 8 | |
|---|
| 9 | APP_DIR := ${MULBERRY_DIR}/Linux |
|---|
| 10 | APP_NAME := mulberry |
|---|
| 11 | |
|---|
| 12 | PLUGINS_DIR := ${MULBERRY_DIR}/Plug-ins |
|---|
| 13 | PLUGINLIB_DIR := ${PLUGINS_DIR}/PluginLibrary |
|---|
| 14 | |
|---|
| 15 | JX_DIR := ${DEVHOME}/JX |
|---|
| 16 | |
|---|
| 17 | BITS_DIR := ./Bits |
|---|
| 18 | TIMEZONE_DIR := ./Bits/Timezones |
|---|
| 19 | RESOURCES_DIR := ${MULBERRY_DIR}/Sources_Common/Resources |
|---|
| 20 | LICENSE_FILE := Mulberry_License |
|---|
| 21 | CHANGES_FILE := CHANGES |
|---|
| 22 | CHANGES_FILE_DEV := CHANGES-DEV |
|---|
| 23 | CHANGES_FILE_V3 := CHANGES-v3 |
|---|
| 24 | CHANGES_FILE_DEV_V3 := CHANGES-DEV-v3 |
|---|
| 25 | CHANGES_FILE_V4 := CHANGES-v4 |
|---|
| 26 | CHANGES_FILE_DEV_V4 := CHANGES-DEV-v4 |
|---|
| 27 | |
|---|
| 28 | OS_NAME := $(shell echo "`uname -s`") |
|---|
| 29 | ifeq (${OS_NAME},SunOS) |
|---|
| 30 | PROC_NAME := -$(shell echo "`uname -p`") |
|---|
| 31 | REL_NAME := -$(shell echo "`uname -r`") |
|---|
| 32 | else |
|---|
| 33 | ifeq (${OS_NAME},Linux) |
|---|
| 34 | PROC_NAME := -$(shell echo "`uname -m`") |
|---|
| 35 | KERNEL := $(shell echo "`uname -r`") |
|---|
| 36 | REL_NAME := |
|---|
| 37 | endif |
|---|
| 38 | endif |
|---|
| 39 | |
|---|
| 40 | RELEASE_NAME := ${OS_NAME}${PROC_NAME}${REL_NAME} |
|---|
| 41 | RELEASE_DIR := ./${RELEASE_NAME} |
|---|
| 42 | LIB_DIR := ${RELEASE_DIR}/lib |
|---|
| 43 | HIDDEN_DIR := .mulberry |
|---|
| 44 | PLUGIN_RELEASE_DIR := ${RELEASE_DIR}/${HIDDEN_DIR}/Plug-ins |
|---|
| 45 | RESOURCE_RELEASE_DIR := ${RELEASE_DIR}/${HIDDEN_DIR}/Resources |
|---|
| 46 | TIMEZONE_RELEASE_DIR := ${PLUGIN_RELEASE_DIR}/Timezones |
|---|
| 47 | LINK_DIR := ./obj |
|---|
| 48 | RPM_DIR := ./rpmdir |
|---|
| 49 | RPM_SOURCES_DIR := ${RPM_DIR}/SOURCES |
|---|
| 50 | RPM_BUILD_DIR := ${RPM_DIR}/BUILD |
|---|
| 51 | |
|---|
| 52 | TAR_FILE := mulberry-${MUL_VERSION}-${ARCHIVE_SUFFIX}.tar |
|---|
| 53 | GZIP_FILE := mulberry-${MUL_VERSION}-${ARCHIVE_SUFFIX}.tgz |
|---|
| 54 | |
|---|
| 55 | TAR_ITEMS := ${APP_NAME} ${LICENSE_FILE} ${HIDDEN_DIR} |
|---|
| 56 | TAR_ITEMS_LIB := ${APP_NAME} ${LICENSE_FILE} ${HIDDEN_DIR} lib |
|---|
| 57 | |
|---|
| 58 | ACE_LIB := ${JX_DIR}/ACE/ACE_wrappers/ace/libACE.so |
|---|
| 59 | ACE_LIB_RENAME := libACE-5_4_7.so |
|---|
| 60 | JCORE_LIB := ${JX_DIR}/libjcore/libjcore-2_5_0.so |
|---|
| 61 | JX_LIB := ${JX_DIR}/libjx/libjx-2_5_0.so |
|---|
| 62 | STL_LIB := ${DEVHOME}/STLport/lib/libstlport_gcc.so |
|---|
| 63 | GCCSTD_LIB := /usr/local/lib/libstdc++.so.2.10.0 |
|---|
| 64 | |
|---|
| 65 | STATIC_FLAGS := static=1 |
|---|
| 66 | NODEBUG_FLAGS := nodebug=1 |
|---|
| 67 | |
|---|
| 68 | help: |
|---|
| 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 | |
|---|
| 83 | svnjx: |
|---|
| 84 | @echo "--> Updating JX" |
|---|
| 85 | @(cd ${JX_DIR}; svn update) |
|---|
| 86 | |
|---|
| 87 | jx: |
|---|
| 88 | @echo "--> Building JX" |
|---|
| 89 | @(cd ${JX_DIR}; ./build) |
|---|
| 90 | |
|---|
| 91 | svn: |
|---|
| 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 | |
|---|
| 105 | static: cleanrelease plugins appstatic archivestatic |
|---|
| 106 | staticcw: cleanrelease plugins appstaticcw archivestatic |
|---|
| 107 | |
|---|
| 108 | staticnoplugins: cleanrelease pluginsnobuild appstatic archivestatic |
|---|
| 109 | staticnopluginscw: cleanrelease pluginsnobuild appstaticcw archivestatic |
|---|
| 110 | |
|---|
| 111 | dynamic: cleanrelease plugins app lib archivedynamic |
|---|
| 112 | |
|---|
| 113 | cleanall: cleanapp cleanplugins cleanrelease |
|---|
| 114 | |
|---|
| 115 | cleanmost: cleanplugins cleanrelease |
|---|
| 116 | |
|---|
| 117 | cleanapp: |
|---|
| 118 | @echo "" |
|---|
| 119 | @echo "--> Removing current mulberry binary" |
|---|
| 120 | @rm -f ${APP_DIR}/${APP_NAME} |
|---|
| 121 | |
|---|
| 122 | cleanplugins: |
|---|
| 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 | |
|---|
| 129 | cleanrelease: |
|---|
| 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 | |
|---|
| 140 | plugins: |
|---|
| 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 | |
|---|
| 148 | pluginsnobuild: |
|---|
| 149 | @echo "-->Copying Plugins" |
|---|
| 150 | @cp ${PLUGINS_DIR}/*/*Plugin.so ${PLUGIN_RELEASE_DIR} |
|---|
| 151 | @strip ${PLUGIN_RELEASE_DIR}/*Plugin.so |
|---|
| 152 | |
|---|
| 153 | appstatic: |
|---|
| 154 | @${MAKE} "BUILD_STATIC=1" app |
|---|
| 155 | |
|---|
| 156 | appstaticcw: |
|---|
| 157 | @${MAKE} "BUILD_STATIC=1" appcw |
|---|
| 158 | |
|---|
| 159 | app: |
|---|
| 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 | |
|---|
| 168 | appcw: |
|---|
| 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 | |
|---|
| 176 | bits: |
|---|
| 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 | |
|---|
| 193 | lib: |
|---|
| 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 | |
|---|
| 205 | archivestatic: 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 | |
|---|
| 215 | archivedynamic: 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 | |
|---|
| 225 | rpm: |
|---|
| 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 | |
|---|
| 235 | clean: |
|---|
| 236 | @rm -rf ${RELEASE_DIR} |
|---|
| 237 | @rm -rf ${RPM_DIR} |
|---|
| 238 | |
|---|
| 239 | install: |
|---|
| 240 | @cp ${RELEASE_DIR}/${GZIP_FILE} ~ |
|---|
| 241 | @(cd ~; tar zxf ${GZIP_FILE}; rm ${GZIP_FILE}) |
|---|
| 242 | |
|---|