Index: valknut/configure.in
===================================================================
--- valknut/configure.in (revision 208)
+++ valknut/configure.in (working copy)
@@ -6,15 +6,17 @@
AC_CANONICAL_SYSTEM
VERSION="0.3.9svn"
+SERIAL="`date +%Y%m%d`"
RELEASE="1"
LARGEFILESUPPORT="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
if echo "$VERSION" | grep svn >/dev/null 2>&1; then
- VERSION=$VERSION"`date +%Y%m%d`"
+ VERSION=$VERSION$SERIAL
fi
AC_SUBST(VERSION)
AC_SUBST(RELEASE)
+AC_SUBST(SERIAL)
AM_INIT_AUTOMAKE([valknut],[$VERSION])
@@ -265,6 +267,7 @@
AC_CONFIG_FILES([ Makefile ])
AC_CONFIG_FILES([ valknut.spec ])
AC_CONFIG_FILES([ valknut.lsm ])
+AC_CONFIG_FILES([ Info.plist ])
AC_CONFIG_FILES([ valknut/Makefile ])
AC_CONFIG_FILES([ valknut/docs/Makefile ])
AC_CONFIG_FILES([ valknut/docs/en/Makefile ])
Index: valknut/Info.plist.in
===================================================================
--- valknut/Info.plist.in (revision 208)
+++ valknut/Info.plist.in (working copy)
@@ -13,17 +13,17 @@
CFBundleIdentifier
de.ketelhot.DC
CFBundleLongVersionString
- Valknut %VERS% %SERIAL%
+ Valknut @VERSION@
CFBundleName
Valknut
CFBundlePackageType
APPL
CFBundleShortVersionString
- %VERS%
+ @VERSION@
CFBundleSignature
∂çQt
CFBundleVersion
- %SERIAL%
+ @SERIAL@
NSAppleScriptEnabled
NSHumanReadableCopyright
Index: valknut/TODO
===================================================================
--- valknut/TODO (revision 208)
+++ valknut/TODO (working copy)
@@ -3,3 +3,10 @@
- Build a ADC protocol library
- Migrate from QT to wxWidgets
+ - Add "rm -rf *.dmg *.sparseimage Valknut.app" to 'make clean' or 'make distclean'(?).
+
+OS X specific:
+ - place OS X Makefile variables in correct location in Makefile.am
+ - have 'install-osx' dependent on make build being finished
+ - similar for each of the subsections (depend on previous one)
+ - have 'make install-osx' (and sub targets) only work when building the native version (ie, only if --enable-mac is set). The Mac X11 version works like any other Unix build/install. This step is not as critical as the other OS X points, but useful.
Index: valknut/Makefile.am
===================================================================
--- valknut/Makefile.am (revision 208)
+++ valknut/Makefile.am (working copy)
@@ -1,5 +1,21 @@
####### kdevelop will overwrite this part!!! (begin)##########
+INSTALL_DIR=/usr/bin/install -d -m 755
+OSX_BUNDLE_NAME=Valknut
+OSX_APP_DIR=$(OSX_BUNDLE_NAME).app
+TS_DIR=$(PACKAGE)/ts
+OSX_TRANS_TARGET=$(OSX_APP_DIR)/translation
+SOUNDS_DIR=$(PACKAGE)/sounds
+OSX_SOUNDS_TARGET=$(OSX_APP_DIR)/sounds
+PLUGIN_DIR=$(PACKAGE)/plugin
+OSX_PLUGIN_TARGET=$(OSX_APP_DIR)/plugin
+ICONS_DIR=$(PACKAGE)/icons
+OSX_ICONS_TARGET=$(OSX_APP_DIR)/icons
+OSX_CNT_TARGET=$(OSX_APP_DIR)/Contents
+OSX_MACOS_TARGET=$(OSX_CNT_TARGET)/MacOS
+OSX_RSC_TARGET=$(OSX_CNT_TARGET)/Resources
+OSX_DMG_TARGET="$(OSX_BUNDLE_NAME) $(VERSION)"
+
SUBDIRS = valknut
EXTRA_DIST = admin AUTHORS COPYING COPYING.OpenSSL ChangeLog INSTALL INSTALL.MAC README TODO valknut.lsm valknut.spec
@@ -34,3 +50,58 @@
install-data-local:
$(mkinstalldirs) $(datadir)/valknut
$(INSTALL_DATA) COPYING $(datadir)/valknut/
+
+# For building the aqua native OS X .app
+install-osx: install-osx-app-bundle install-osx-standalone-app install-osx-disk-image
+
+install-osx-app-bundle:
+ $(INSTALL_DIR) $(OSX_APP_DIR)
+ $(INSTALL_DIR) $(OSX_TRANS_TARGET)
+ $(LRELEASE) $(TS_DIR)/*.ts
+ $(INSTALL_DATA) $(TS_DIR)/*.qm $(OSX_TRANS_TARGET)
+ $(INSTALL_DIR) $(OSX_SOUNDS_TARGET)/default
+ $(INSTALL_DIR) $(OSX_SOUNDS_TARGET)/default
+ $(INSTALL_DIR) $(OSX_ICONS_TARGET)/appl/default
+ $(INSTALL_DIR) $(OSX_ICONS_TARGET)/emot/default
+ $(INSTALL_DIR) $(OSX_ICONS_TARGET)/user/default
+ $(INSTALL_DATA) $(ICONS_DIR)/*.xpm $(OSX_ICONS_TARGET)/appl/default
+ $(INSTALL_DATA) $(ICONS_DIR)/*.xml $(OSX_ICONS_TARGET)/appl/default
+ /bin/mv $(OSX_ICONS_TARGET)/appl/default/emoticons.xml $(OSX_ICONS_TARGET)/emot/default
+ /bin/mv $(OSX_ICONS_TARGET)/appl/default/emoticons.xpm $(OSX_ICONS_TARGET)/emot/default
+ /bin/mv $(OSX_ICONS_TARGET)/appl/default/usericons.xml $(OSX_ICONS_TARGET)/user/default
+ /bin/mv $(OSX_ICONS_TARGET)/appl/default/usericons.xpm $(OSX_ICONS_TARGET)/user/default
+ $(INSTALL_DIR) $(OSX_CNT_TARGET)
+# $(SED) -e "s|%VERS%|$(VERSION)|g;s|%SERIAL%|$(APP_SERIAL)|g" Info.plist.in > $(OSX_CNT_TARGET)/Info.plist
+ $(INSTALL_DATA) Info.plist $(OSX_CNT_TARGET)/Info.plist
+ $(INSTALL_DATA) PkgInfo.in $(OSX_CNT_TARGET)/PkgInfo
+ $(INSTALL_DIR) $(OSX_MACOS_TARGET)
+ $(INSTALL) -s -m 755 $(PACKAGE)/$(PACKAGE) $(OSX_MACOS_TARGET)/$(PACKAGE)
+ $(INSTALL_DIR) $(OSX_RSC_TARGET)
+ $(INSTALL_DATA) $(ICONS_DIR)/icon_128x128.icns $(OSX_RSC_TARGET)/$(OSX_BUNDLE_NAME).icns
+
+install-osx-standalone-app:
+# Copy the .dylibs that are linked by the program
+# This loop is only needed if you want to build a standalone .app bundle.
+ for i in `otool -L $(OSX_MACOS_TARGET)/$(PACKAGE) | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \/usr\/lib` ; do
+ /bin/cp -p $(i) $(OSX_MACOS_TARGET);
+ @echo "Copied `basename $(i)`"
+ /usr/bin/install_name_tool -change $(i) @executable_path/`basename $(i)` $(OSX_MACOS_TARGET)/$(PACKAGE);
+# now check paths for other libraries linked by the copied libraries.
+ for j in `otool -L $(i) | grep version | cut -f 1 -d ' '| grep -v $(i) | grep -v \/System\/Library | grep -v \/usr\/lib` ; do
+ /usr/bin/install_name_tool -change $(j) @executable_path/`basename $(j)` $(OSX_MACOS_TARGET)/`basename $(i)`
+ done
+ done
+
+install-osx-disk-image:
+ /usr/bin/hdiutil create -type SPARSE -size 20m -fs HFS+ -volname $(OSX_DMG_TARGET) -attach $(OSX_BUNDLE_NAME)-$(VERSION).sparseimage
+ /bin/cp -R $(OSX_APP_DIR) /Volumes/$(OSX_DMG_TARGET)
+ /bin/cp $(PACKAGE)/icons/$(OSX_BUNDLE_NAME)VolumeIcon.icns /Volumes/$(OSX_DMG_TARGET)/.VolumeIcon.icns
+ /Developer/Tools/SetFile -a C /Volumes/$(OSX_DMG_TARGET)/.VolumeIcon.icns /Volumes/$(OSX_DMG_TARGET)
+ /usr/bin/hdiutil unmount /Volumes/$(OSX_DMG_TARGET)
+ /usr/bin/hdiutil convert -imagekey zlib-level=9 -format UDZO $(PACKAGE)-$(VERSION).sparseimage -o $(PACKAGE)-$(VERSION)-`uname -p`.dmg
+ /bin/rm -f $(PACKAGE)-$(VERSION).sparseimage
+ @echo ""
+ @echo "Done building a distributable disk image for $(OSX_BUNDLE_NAME) $(VERSION)."
+ @echo "The disk image can be found at the root of the"
+ @echo "build directory `pwd`"
+ @echo "as '$(PACKAGE)-$(VERSION)-`uname -p`.dmg'."