Index: configure.in
===================================================================
--- configure.in (revision 244)
+++ configure.in (working copy)
@@ -6,6 +6,7 @@
AC_CANONICAL_SYSTEM
VERSION="0.3.9svn"
+SERIAL="`date +%Y%m%d`"
# the required version of dclib, checked for by pkg-config
DCLIB_PKGCONFIG_VERSION="dclib >= 0.3.9"
@@ -14,11 +15,12 @@
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])
@@ -274,6 +276,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: Info.plist.in
===================================================================
--- Info.plist.in (revision 244)
+++ 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: TODO
===================================================================
--- TODO (revision 244)
+++ TODO (working copy)
@@ -3,3 +3,6 @@
- Build a ADC protocol library
- Migrate from QT to wxWidgets
+OS X specific:
+ - place OS X Makefile variables in correct location in Makefile.am
+ - 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: Makefile.am
===================================================================
--- Makefile.am (revision 244)
+++ Makefile.am (working copy)
@@ -1,5 +1,23 @@
####### kdevelop will overwrite this part!!! (begin)##########
+INSTALL_DIR = /usr/bin/install -d -m 755
+OTOOL = /usr/bin/otool
+HDIUTIL = /usr/bin/hdiutil
+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 +52,61 @@
install-data-local:
$(mkinstalldirs) $(datadir)/valknut
$(INSTALL_DATA) COPYING $(datadir)/valknut/
+
+define install_osx_libraries
+$(shell $(INSTALL) -m 755 $(dylib) $(OSX_MACOS_TARGET))
+$(shell /usr/bin/install_name_tool -change $(dylib) \@executable_path/$(notdir $(dylib)) $(OSX_MACOS_TARGET)/$(PACKAGE))
+$(shell /usr/bin/install_name_tool -id \@executable_path/$(notdir $(dylib)) $(OSX_MACOS_TARGET)/$(notdir $(dylib)))
+$(foreach linked_dylibs_2,$(shell $(OTOOL) -L $(dylib) | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \usr\/lib | grep -v executable_path),$(rename_secondary_osx_libraries))
+endef
+
+define rename_secondary_osx_libraries
+$(shell /usr/bin/install_name_tool -change $(linked_dylibs_2) \@executable_path/$(notdir $(linked_dylibs_2)) $(OSX_MACOS_TARGET)/$(notdir $(dylib)))
+endef
+
+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)
+ $(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: install-osx-app-bundle
+ $(foreach dylib,$(shell $(OTOOL) -L $(OSX_MACOS_TARGET)/$(PACKAGE) | grep version | cut -f 1 -d ' ' | grep -v \/System\/Library | grep -v \/usr\/lib),$(install_osx_libraries))
+
+install-osx-disk-image: install-osx-app-bundle install-osx-standalone-app
+ /bin/rm -f $(PACKAGE)-$(VERSION)-`uname -p`.dmg
+ $(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)
+ $(HDIUTIL) unmount /Volumes/$(OSX_DMG_TARGET)
+ $(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'."
+
+clean-osx:
+ /bin/rm -rf *.dmg *.sparseimage Valknut.app