From c40a72223c9f13aa18d0d5cf7a8071618da6599e Mon Sep 17 00:00:00 2001 From: Ken Thomases Date: Mon, 7 Jan 2013 14:44:23 -0600 Subject: [PATCH] loader: On Mac, embed Info.plist in (__TEXT, __info_plist) section. --- .gitignore | 1 + configure | 4 ++-- configure.ac | 4 ++-- loader/Makefile.in | 7 +++++-- loader/wine_info.plist.in | 26 ++++++++++++++++++++++++++ tools/make_makefiles | 1 + 6 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 loader/wine_info.plist.in diff --git a/.gitignore b/.gitignore index b565fabecb8..f990f3e683c 100644 --- a/.gitignore +++ b/.gitignore @@ -274,6 +274,7 @@ loader/wine-installed loader/wine-preloader loader/wine64 loader/wine64-preloader +loader/wine_info.plist msg.pot po/*.mo programs/Makeprog.rules diff --git a/configure b/configure index ca5da34abf1..5e627668420 100755 --- a/configure +++ b/configure @@ -6567,10 +6567,10 @@ fi case $host_os in darwin11*) - LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000" + LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist" ;; *) - LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000" + LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist" ;; esac if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes" diff --git a/configure.ac b/configure.ac index c06e108131f..372bc06caf0 100644 --- a/configure.ac +++ b/configure.ac @@ -732,9 +732,9 @@ case $host_os in AC_SUBST(CORESERVICESLIB,"-framework CoreServices") case $host_os in darwin11*) - AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000"]) ;; + AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-macosx_version_min,10.6,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"]) ;; *) - AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000"]) ;; + AC_SUBST(LDEXECFLAGS,["-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"]) ;; esac if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes" then diff --git a/loader/Makefile.in b/loader/Makefile.in index ecc20aba680..3993fa39919 100644 --- a/loader/Makefile.in +++ b/loader/Makefile.in @@ -39,12 +39,15 @@ LDEXECFLAGS = @LDEXECFLAGS@ wine-preloader wine64-preloader: preloader.o Makefile.in $(CC) -o $@ -static -nostartfiles -nodefaultlibs -Wl,-Ttext=0x7c400000 preloader.o $(LIBPORT) $(LDFLAGS) -$(MAIN_BINARY): main.o Makefile.in +$(MAIN_BINARY): main.o Makefile.in wine_info.plist $(CC) -o $@ $(LDEXECFLAGS) main.o $(LIBWINE) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS) $(LDRPATH_LOCAL) -wine-installed: main.o Makefile.in +wine-installed: main.o Makefile.in wine_info.plist $(CC) -o $@ $(LDEXECFLAGS) main.o $(LIBWINE) $(LIBPORT) $(LIBPTHREAD) $(EXTRALIBS) $(LDFLAGS) $(LDRPATH_INSTALL) +wine_info.plist: wine_info.plist.in + LC_ALL=C sed -e 's,@PACKAGE_VERSION\@,@PACKAGE_VERSION@,g' $< >$@ || ($(RM) $@ && false) + $(EXTRA_BINARIES:%=__install__%): $(EXTRA_BINARIES) $(DESTDIR)$(bindir) dummy f=`expr $@ : '__install__\(.*\)'` && $(INSTALL_PROGRAM) $$f $(DESTDIR)$(bindir)/$$f diff --git a/loader/wine_info.plist.in b/loader/wine_info.plist.in new file mode 100644 index 00000000000..aea99e571aa --- /dev/null +++ b/loader/wine_info.plist.in @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + wine + CFBundleIdentifier + org.winehq.wine + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Wine + CFBundlePackageType + APPL + CFBundleShortVersionString + @PACKAGE_VERSION@ + CFBundleSignature + ???? + CFBundleVersion + @PACKAGE_VERSION@ + NSPrincipalClass + WineApplication + + diff --git a/tools/make_makefiles b/tools/make_makefiles index df798d70ec5..be106c93c04 100755 --- a/tools/make_makefiles +++ b/tools/make_makefiles @@ -95,6 +95,7 @@ my @ignores = ( "*/*/tests/testlist.c", "include/config.h", "include/stamp-h", + "loader/wine_info.plist", "msg.pot", "po/*.mo", "programs/winetest/build.nfo",