From f176ac404ad709e6c1254f8685f8d9fe7b995115 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Fri, 15 Jan 2010 18:13:05 +0000 Subject: [PATCH] Extend osx makefile to allow building of a working GNUstep application, for testing purposes. Add GNUstep version of Info.plist, remove app-skeleton directory and move contents up. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 1813 --- configure.in | 1 + pkg/Makefile.am | 17 ++++---- pkg/osx/GNUmakefile | 37 ++++++++++++++---- pkg/osx/Info-GNUstep.plist.in | 31 +++++++++++++++ pkg/osx/{app-skeleton/Contents => }/PkgInfo | 0 .../Contents => }/Resources/128x128.png | Bin .../Contents => }/Resources/app.icns | Bin pkg/osx/Resources/app.png | Bin 0 -> 4597 bytes .../Resources/launcher.nib/classes.nib | 0 .../Resources/launcher.nib/info.nib | 0 .../Resources/launcher.nib/keyedobjects.nib | Bin .../Contents => }/Resources/wadfile.icns | Bin 12 files changed, 71 insertions(+), 15 deletions(-) create mode 100644 pkg/osx/Info-GNUstep.plist.in rename pkg/osx/{app-skeleton/Contents => }/PkgInfo (100%) rename pkg/osx/{app-skeleton/Contents => }/Resources/128x128.png (100%) rename pkg/osx/{app-skeleton/Contents => }/Resources/app.icns (100%) create mode 100644 pkg/osx/Resources/app.png rename pkg/osx/{app-skeleton/Contents => }/Resources/launcher.nib/classes.nib (100%) rename pkg/osx/{app-skeleton/Contents => }/Resources/launcher.nib/info.nib (100%) rename pkg/osx/{app-skeleton/Contents => }/Resources/launcher.nib/keyedobjects.nib (100%) rename pkg/osx/{app-skeleton/Contents => }/Resources/wadfile.icns (100%) diff --git a/configure.in b/configure.in index db76ebef..2296a654 100644 --- a/configure.in +++ b/configure.in @@ -120,6 +120,7 @@ pcsound/Makefile pkg/Makefile pkg/config.make pkg/osx/Info.plist +pkg/osx/Info-GNUstep.plist setup/Makefile setup/setup-res.rc src/Makefile diff --git a/pkg/Makefile.am b/pkg/Makefile.am index b898e728..6a3b38ff 100644 --- a/pkg/Makefile.am +++ b/pkg/Makefile.am @@ -1,14 +1,15 @@ OSX_FILES= \ -osx/app-skeleton/Contents/PkgInfo \ -osx/app-skeleton/Contents/Resources/128x128.png \ -osx/app-skeleton/Contents/Resources/app.icns \ -osx/app-skeleton/Contents/Resources/wadfile.icns \ -osx/app-skeleton/Contents/Resources/launcher.nib/classes.nib \ -osx/app-skeleton/Contents/Resources/launcher.nib/info.nib \ -osx/app-skeleton/Contents/Resources/launcher.nib/keyedobjects.nib \ +osx/Resources/128x128.png \ +osx/Resources/app.icns \ +osx/Resources/app.png \ +osx/Resources/wadfile.icns \ +osx/Resources/launcher.nib/classes.nib \ +osx/Resources/launcher.nib/info.nib \ +osx/Resources/launcher.nib/keyedobjects.nib \ osx/GNUmakefile \ -osx/Info.plist.in \ +osx/Info.plist.in osx/Info-GNUstep.plist.in \ +osx/PkgInfo \ osx/cp-with-libs \ osx/main.m \ osx/AppController.m osx/AppController.h \ diff --git a/pkg/osx/GNUmakefile b/pkg/osx/GNUmakefile index de2c535a..d1894bef 100644 --- a/pkg/osx/GNUmakefile +++ b/pkg/osx/GNUmakefile @@ -1,4 +1,9 @@ +# Makefile for building the OS X launcher program and DMG package. +# It is also possible to build and run the launcher under Unix +# systems using GNUstep, although this is only here for development +# and debugging purposes. + include ../config.make STAGING_DIR=staging @@ -20,17 +25,37 @@ endif # Staging dir build for package: APP_DIR=$(STAGING_DIR)/$(PACKAGE_NAME).app -APP_BIN_DIR=$(APP_DIR)/Contents/MacOS/ + +# OS X and GNUstep apps have a slightly different internal structure: +# OS X apps have their files within a containing "Contents" directory +# that does not exist in GNUstep apps. Similarly, the binaries are +# installed at the top level, rather than in a "MacOS" directory. +# Finally, we must install a different Info.plist file. + +ifdef GNUSTEP_MAKEFILES +APP_TOP_DIR=$(APP_DIR) +APP_BIN_DIR=$(APP_DIR) +SRC_INFO_PLIST=Info-GNUstep.plist +else +APP_TOP_DIR=$(APP_DIR)/Contents +APP_BIN_DIR=$(APP_DIR)/Contents/MacOS +SRC_INFO_PLIST=Info.plist +endif $(STAGING_DIR): launcher $(TOPLEVEL_DOCS) rm -rf $(STAGING_DIR) mkdir $(STAGING_DIR) - cp -R app-skeleton "$(APP_DIR)" - mkdir "$(APP_BIN_DIR)" - cp Info.plist "$(APP_DIR)/Contents/" + cp $(TOPLEVEL_DOCS) "$(STAGING_DIR)" - cp launcher "$(APP_BIN_DIR)/" + mkdir -p "$(APP_TOP_DIR)" + cp -R Resources "$(APP_TOP_DIR)" + cp PkgInfo "$(APP_TOP_DIR)" + cp $(SRC_INFO_PLIST) "$(APP_TOP_DIR)/Info.plist" + + mkdir -p "$(APP_BIN_DIR)" + + cp launcher "$(APP_BIN_DIR)" $(STRIP) "$(APP_BIN_DIR)/launcher" ./cp-with-libs $(TOPLEVEL)/src/$(PACKAGE_TARNAME) "$(APP_BIN_DIR)" @@ -38,8 +63,6 @@ $(STAGING_DIR): launcher $(TOPLEVEL_DOCS) ./cp-with-libs $(TOPLEVEL)/setup/chocolate-setup "$(APP_BIN_DIR)" $(STRIP) "$(APP_BIN_DIR)/chocolate-setup" - cp $(TOPLEVEL_DOCS) "$(STAGING_DIR)" - find $(STAGING_DIR) -name .svn -delete -exec rm -rf {} \; || true clean : launcher_clean diff --git a/pkg/osx/Info-GNUstep.plist.in b/pkg/osx/Info-GNUstep.plist.in new file mode 100644 index 00000000..ac6511e2 --- /dev/null +++ b/pkg/osx/Info-GNUstep.plist.in @@ -0,0 +1,31 @@ +{ + ApplicationDescription = "@PACKAGE_NAME@"; + ApplicationIcon = app.png; + ApplicationName = "@PACKAGE_NAME@"; + ApplicationRelease = @PACKAGE_VERSION@; + Copyright = "Copyright (C) 2009-2010"; + CopyrightDescription = "GNU General Public License, version 2"; + FullVersionID = @PACKAGE_VERSION@; + GSMainMarkupFile = ""; + NSExecutable = "launcher"; + NSIcon = app.png; + NSMainNibFile = launcher.nib; + NSPrincipalClass = NSApplication; + NSRole = Application; + NSTypes = ( + { + NSHumanReadableName = "Doom WAD file"; + NSUnixExtensions = ( wad ); + NSRole = Viewer; + NSMimeTypes = ( + "application/x-doom" + ); + }, + { + NSHumanReadableName = "Dehacked patch"; + NSUnixExtensions = ( deh ); + NSRole = Viewer; + NSIcon = "wadfile.png"; + } + ); +} diff --git a/pkg/osx/app-skeleton/Contents/PkgInfo b/pkg/osx/PkgInfo similarity index 100% rename from pkg/osx/app-skeleton/Contents/PkgInfo rename to pkg/osx/PkgInfo diff --git a/pkg/osx/app-skeleton/Contents/Resources/128x128.png b/pkg/osx/Resources/128x128.png similarity index 100% rename from pkg/osx/app-skeleton/Contents/Resources/128x128.png rename to pkg/osx/Resources/128x128.png diff --git a/pkg/osx/app-skeleton/Contents/Resources/app.icns b/pkg/osx/Resources/app.icns similarity index 100% rename from pkg/osx/app-skeleton/Contents/Resources/app.icns rename to pkg/osx/Resources/app.icns diff --git a/pkg/osx/Resources/app.png b/pkg/osx/Resources/app.png new file mode 100644 index 0000000000000000000000000000000000000000..5b932e8cf86ca68c79b71a41458df6c1809011f3 GIT binary patch literal 4597 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