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 @@ + + + + + CFBundleIconFile + Subsurface + CFBundleName + Subsurface + CFBundlePackageType + APPL + CFBundleGetInfoString + Rough divelog in C and Gtk + CFBundleSignature + ???? + CFBundleExecutable + subsurface.sh + CFBundleIdentifier + torvalds.subsurface + + 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 Binary files /dev/null and b/packaging/macosx/Subsurface.icns 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