summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile13
-rw-r--r--main.c6
-rw-r--r--packaging/macosx/Info.plist20
-rw-r--r--packaging/macosx/PkgInfo1
-rw-r--r--packaging/macosx/Subsurface.icnsbin0 -> 71777 bytes
-rwxr-xr-xpackaging/macosx/subsurface.sh5
6 files changed, 45 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 3f563a3b5..ab7df0003 100644
--- a/Makefile
+++ b/Makefile
@@ -22,6 +22,9 @@ ICONFILE = $(NAME).svg
DESKTOPFILE = $(NAME).desktop
MANFILES = $(NAME).1
+MACOSXINSTALL = /Applications/Subsurface.app
+MACOSXFILES = packaging/macosx
+
# find libdivecomputer
# First deal with the cross compile environment.
# For the native case, Linus doesn't want to trust pkg-config given
@@ -102,6 +105,16 @@ GLIB2CFLAGS = $(shell $(PKGCONFIG) --cflags glib-2.0)
GCONF2CFLAGS = $(shell $(PKGCONFIG) --cflags gconf-2.0)
GTK2CFLAGS = $(shell $(PKGCONFIG) --cflags gtk+-2.0)
+install-macosx: $(NAME)
+ $(INSTALL) -d -m 755 $(MACOSXINSTALL)/Contents/Resources
+ $(INSTALL) -d -m 755 $(MACOSXINSTALL)/Contents/MacOS
+ $(INSTALL) $(NAME) $(MACOSXINSTALL)/Contents/MacOS/
+ $(INSTALL) $(MACOSXFILES)/subsurface.sh $(MACOSXINSTALL)/Contents/MacOS/
+ $(INSTALL) $(MACOSXFILES)/PkgInfo $(MACOSXINSTALL)/Contents/
+ $(INSTALL) $(MACOSXFILES)/Info.plist $(MACOSXINSTALL)/Contents/
+ $(INSTALL) $(ICONFILE) $(MACOSXINSTALL)/Contents/Resources/
+ $(INSTALL) $(MACOSXFILES)/Subsurface.icns $(MACOSXINSTALL)/Contents/Resources/
+
parse-xml.o: parse-xml.c dive.h
$(CC) $(CFLAGS) $(GLIB2CFLAGS) -c $(XML2CFLAGS) parse-xml.c
diff --git a/main.c b/main.c
index f34e3ae51..5fed4cd6e 100644
--- a/main.c
+++ b/main.c
@@ -167,6 +167,12 @@ static void parse_argument(const char *arg)
return;
}
/* fallthrough */
+ case 'p':
+ /* ignore process serial number argument when run as native macosx app */
+ if (strncmp(arg, "-psn_", 5) == 0) {
+ return;
+ }
+ /* fallthrough */
default:
fprintf(stderr, "Bad argument '%s'\n", arg);
exit(1);
diff --git a/packaging/macosx/Info.plist b/packaging/macosx/Info.plist
new file mode 100644
index 000000000..4ee12438b
--- /dev/null
+++ b/packaging/macosx/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleIconFile</key>
+ <string>Subsurface</string>
+ <key>CFBundleName</key>
+ <string>Subsurface</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Rough divelog in C and Gtk</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleExecutable</key>
+ <string>subsurface.sh</string>
+ <key>CFBundleIdentifier</key>
+ <string>torvalds.subsurface</string>
+</dict>
+</plist>
diff --git a/packaging/macosx/PkgInfo b/packaging/macosx/PkgInfo
new file mode 100644
index 000000000..6f749b0f3
--- /dev/null
+++ b/packaging/macosx/PkgInfo
@@ -0,0 +1 @@
+APPL????
diff --git a/packaging/macosx/Subsurface.icns b/packaging/macosx/Subsurface.icns
new file mode 100644
index 000000000..27c077f16
--- /dev/null
+++ b/packaging/macosx/Subsurface.icns
Binary files differ
diff --git a/packaging/macosx/subsurface.sh b/packaging/macosx/subsurface.sh
new file mode 100755
index 000000000..ee9427c37
--- /dev/null
+++ b/packaging/macosx/subsurface.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+cd `dirname $0`/../Resources
+../MacOS/subsurface &
+exit 0