[vlc-devel] [PATCH] darwinvlc: compile with objc and fix build system
david.fuhrmann at gmail.com
david.fuhrmann at gmail.com
Thu Jun 18 21:06:24 CEST 2015
From: David Fuhrmann <dfuhrmann at videolan.org>
As we do not want to break other os versions, the only way to
select the proper linker is to use another target for osx.
Still, "make install" should produce a binary named "vlc" in the
end, thus the binary is renamed at install stage.
---
Hi,
I'm sending the patch again for the autotools changes. I'm not sure if this
is the correct way of making sure that "make install" has a binary named vlc
in the end. Does anyone have a better / more correct idea how to achieve this?
Best regards,
David
Makefile.am | 2 +
bin/Makefile.am | 19 +-
bin/darwinvlc.c | 259 ---------------------
bin/darwinvlc.m | 259 +++++++++++++++++++++
extras/package/macosx/build-package.sh | 4 +-
extras/package/macosx/package.mak | 2 +-
.../package/macosx/vlc.xcodeproj/project.pbxproj | 6 +-
7 files changed, 282 insertions(+), 269 deletions(-)
delete mode 100644 bin/darwinvlc.c
create mode 100644 bin/darwinvlc.m
diff --git a/Makefile.am b/Makefile.am
index 3c7831a..9c55f7b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -972,8 +972,10 @@ if BUILD_VLC
noinst_SCRIPTS = vlc$(EXEEXT)
endif
+if !HAVE_DARWIN
vlc$(EXEEXT):
$(AM_V_GEN)$(LN_S) -f bin/vlc-static$(EXEEXT) vlc$(EXEEXT)
+endif
TESTS = test/run_vlc.sh
dist_noinst_SCRIPTS += test/run_vlc.sh
diff --git a/bin/Makefile.am b/bin/Makefile.am
index 02e77ff..992ca2c 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -1,7 +1,11 @@
# Building vlc
#
+if HAVE_DARWIN
+bin_PROGRAMS = vlc-osx
+else
bin_PROGRAMS = vlc
noinst_PROGRAMS = vlc-static
+endif
noinst_DATA =
vlclib_PROGRAMS = vlc-cache-gen
EXTRA_PROGRAMS = vlc-wrapper
@@ -22,22 +26,21 @@ endif
vlc_SOURCES = vlc.c override.c
endif
-EXTRA_vlc_SOURCES = vlc.c winvlc.c darwinvlc.c
+EXTRA_vlc_SOURCES = vlc.c winvlc.c
if HAVE_WIN32
vlc_SOURCES = winvlc.c
noinst_DATA += vlc_win32_rc.rc
endif
if HAVE_DARWIN
-vlc_SOURCES = darwinvlc.c override.c
+vlc_osx_SOURCES = darwinvlc.m override.c
+vlc_osx_LDFLAGS = $(LDFLAGS_vlc) -Wl,-framework,CoreFoundation,-framework,Cocoa
+vlc_osx_LDADD = ../lib/libvlc.la
endif
vlc_wrapper_SOURCES = rootwrap.c
vlc_wrapper_LDADD = $(SOCKET_LIBS)
vlc_LDFLAGS = $(LDFLAGS_vlc)
-if HAVE_DARWIN
-vlc_LDFLAGS += -Wl,-framework,CoreFoundation
-endif
vlc_LDADD = ../lib/libvlc.la $(LIBPTHREAD)
vlc_static_SOURCES = $(vlc_SOURCES)
@@ -80,6 +83,12 @@ endif
noinst_DATA += ../modules/plugins.dat
MOSTLYCLEANFILES = $(noinst_DATA)
+if HAVE_DARWIN
+install-data-local:
+ cd $(bindir); mv vlc-osx vlc
+
+endif
+
.PHONY: ../modules/plugins.dat
../modules/plugins.dat: vlc-cache-gen$(EXEEXT)
diff --git a/bin/darwinvlc.c b/bin/darwinvlc.c
deleted file mode 100644
index 1841aca..0000000
--- a/bin/darwinvlc.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/*****************************************************************************
- * darwinvlc.c: the darwin-specific VLC player
- *****************************************************************************
- * Copyright (C) 1998-2013 the VideoLAN team
- * $Id$
- *
- * Authors: Vincent Seguin <seguin at via.ecp.fr>
- * Samuel Hocevar <sam at zoy.org>
- * Gildas Bazin <gbazin at videolan.org>
- * Derk-Jan Hartman <hartman at videolan dot org>
- * Lots of other people, see the libvlc AUTHORS file
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <vlc/vlc.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <string.h>
-#include <locale.h>
-#include <signal.h>
-#ifdef HAVE_PTHREAD_H
-# include <pthread.h>
-#endif
-#include <unistd.h>
-#include <TargetConditionals.h>
-#import <CoreFoundation/CoreFoundation.h>
-
-extern void vlc_enable_override (void);
-
-static bool signal_ignored (int signum)
-{
- struct sigaction sa;
-
- if (sigaction (signum, NULL, &sa))
- return false;
- return ((sa.sa_flags & SA_SIGINFO)
- ? (void *)sa.sa_sigaction : (void *)sa.sa_handler) == SIG_IGN;
-}
-
-static void vlc_kill (void *data)
-{
- pthread_t *ps = data;
- pthread_kill (*ps, SIGTERM);
-}
-
-static void exit_timeout (int signum)
-{
- (void) signum;
- signal (SIGINT, SIG_DFL);
-}
-
-/*****************************************************************************
- * main: parse command line, start interface and spawn threads.
- *****************************************************************************/
-int main( int i_argc, const char *ppsz_argv[] )
-{
- /* The so-called POSIX-compliant MacOS X reportedly processes SIGPIPE even
- * if it is blocked in all thread.
- * Note: this is NOT an excuse for not protecting against SIGPIPE. If
- * LibVLC runs outside of VLC, we cannot rely on this code snippet. */
- signal (SIGPIPE, SIG_IGN);
- /* Restore SIGCHLD in case our parent process ignores it. */
- signal (SIGCHLD, SIG_DFL);
-
-#ifndef NDEBUG
- /* Activate malloc checking routines to detect heap corruptions. */
- setenv ("MALLOC_CHECK_", "2", 1);
-#endif
-
-#ifdef TOP_BUILDDIR
- setenv ("VLC_PLUGIN_PATH", TOP_BUILDDIR"/modules", 1);
- setenv ("VLC_DATA_PATH", TOP_SRCDIR"/share", 1);
-#endif
-
-#ifndef ALLOW_RUN_AS_ROOT
- if (geteuid () == 0)
- {
- fprintf (stderr, "VLC is not supposed to be run as root. Sorry.\n"
- "If you need to use real-time priorities and/or privileged TCP ports\n"
- "you can use %s-wrapper (make sure it is Set-UID root and\n"
- "cannot be run by non-trusted users first).\n", ppsz_argv[0]);
- return 1;
- }
-#endif
-
- setlocale (LC_ALL, "");
-
- if (isatty (STDERR_FILENO))
- /* This message clutters error logs. It is printed only on a TTY.
- * Fortunately, LibVLC prints version info with -vv anyway. */
- fprintf (stderr, "VLC media player %s (revision %s)\n",
- libvlc_get_version(), libvlc_get_changeset());
-
- sigset_t set;
-
- sigemptyset (&set);
- /* VLC uses sigwait() to dequeue interesting signals.
- * For this to work, those signals must be blocked in all threads,
- * including the thread calling sigwait() (see the man page for details).
- *
- * There are two advantages to sigwait() over traditional signal handlers:
- * - delivery is synchronous: no need to worry about async-safety,
- * - EINTR is not generated: other threads need not handle that error.
- * That being said, some LibVLC programs do not use sigwait(). Therefore
- * EINTR must still be handled cleanly, notably from poll() calls.
- *
- * Signals that request a clean shutdown, and force an unclean shutdown
- * if they are triggered again 2+ seconds later.
- * We have to handle SIGTERM cleanly because of daemon mode. */
- sigaddset (&set, SIGINT);
- sigaddset (&set, SIGHUP);
- sigaddset (&set, SIGQUIT);
- sigaddset (&set, SIGTERM);
-
- /* SIGPIPE can happen and would crash the process. On modern systems,
- * the MSG_NOSIGNAL flag protects socket write operations against SIGPIPE.
- * But we still need to block SIGPIPE when:
- * - writing to pipes,
- * - using write() instead of send() for code not specific to sockets.
- * LibVLC code assumes that SIGPIPE is blocked. Other LibVLC applications
- * shall block it (or handle it somehow) too.
- */
- sigaddset (&set, SIGPIPE);
-
- /* SIGCHLD must be dequeued to clean up zombie child processes.
- * Furthermore the handler must not be set to SIG_IGN (see above).
- * We cannot pragmatically handle EINTR, short reads and short writes
- * in every code paths (including underlying libraries). So we just
- * block SIGCHLD in all threads, and dequeue it below. */
- sigaddset (&set, SIGCHLD);
-
- /* Block all these signals */
- pthread_sigmask (SIG_SETMASK, &set, NULL);
-
- const char *argv[i_argc + 2];
- int argc = 0;
-
- argv[argc++] = "--no-ignore-config";
- argv[argc++] = "--media-library";
-
- /* overwrite system language on Mac */
-#if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR // TARGET_OS_MAC is unspecific
- char *lang = NULL;
-
- for (int i = 0; i < i_argc; i++) {
- if (!strncmp(ppsz_argv[i], "--language", 10)) {
- lang = strstr(ppsz_argv[i], "=");
- ppsz_argv++, i_argc--;
- continue;
- }
- }
- if (lang && strncmp( lang, "auto", 4 )) {
- char tmp[11];
- snprintf(tmp, 11, "LANG%s", lang);
- putenv(tmp);
- }
-
- if (!lang) {
- CFStringRef language;
- language = (CFStringRef)CFPreferencesCopyAppValue(CFSTR("language"),
- kCFPreferencesCurrentApplication);
- if (language) {
- CFIndex length = CFStringGetLength(language) + 1;
- if (length > 0) {
- CFIndex maxSize = CFStringGetMaximumSizeForEncoding(length, kCFStringEncodingUTF8);
- lang = (char *)malloc(maxSize);
- CFStringGetCString(language, lang, maxSize - 1, kCFStringEncodingUTF8);
- }
- if (strncmp( lang, "auto", 4 )) {
- char tmp[11];
- snprintf(tmp, 11, "LANG=%s", lang);
- putenv(tmp);
- }
- CFRelease(language);
- }
- }
-#endif
-
- ppsz_argv++; i_argc--; /* skip executable path */
-
- /* When VLC.app is run by double clicking in Mac OS X, the 2nd arg
- * is the PSN - process serial number (a unique PID-ish thingie)
- * still ok for real Darwin & when run from command line
- * for example -psn_0_9306113 */
- if (i_argc >= 1 && !strncmp (*ppsz_argv, "-psn" , 4))
- ppsz_argv++, i_argc--;
-
- memcpy (argv + argc, ppsz_argv, i_argc * sizeof (*argv));
- argc += i_argc;
- argv[argc] = NULL;
-
- vlc_enable_override ();
-
- pthread_t self = pthread_self ();
-
- /* Initialize libvlc */
- libvlc_instance_t *vlc = libvlc_new (argc, argv);
- if (vlc == NULL)
- return 1;
-
- int ret = 1;
- libvlc_set_exit_handler (vlc, vlc_kill, &self);
- libvlc_set_app_id (vlc, "org.VideoLAN.VLC", PACKAGE_VERSION, PACKAGE_NAME);
- libvlc_set_user_agent (vlc, "VLC media player", "VLC/"PACKAGE_VERSION);
-
- libvlc_add_intf (vlc, "hotkeys,none");
-
- libvlc_playlist_play (vlc, -1, 0, NULL);
- if (libvlc_add_intf (vlc, NULL))
- goto out;
-
- /* Qt4 insists on catching SIGCHLD via signal handler. To work around that,
- * unblock it after all our child threads are created. */
- sigdelset (&set, SIGCHLD);
- pthread_sigmask (SIG_SETMASK, &set, NULL);
-
- /* Do not dequeue SIGHUP if it is ignored (nohup) */
- if (signal_ignored (SIGHUP))
- sigdelset (&set, SIGHUP);
- /* Ignore SIGPIPE */
- sigdelset (&set, SIGPIPE);
-
- int signum;
- sigwait (&set, &signum);
-
- /* Restore default signal behaviour after 3 seconds */
- sigemptyset (&set);
- sigaddset (&set, SIGINT);
- sigaddset (&set, SIGALRM);
- signal (SIGINT, SIG_IGN);
- signal (SIGALRM, exit_timeout);
- pthread_sigmask (SIG_UNBLOCK, &set, NULL);
- alarm (3);
-
- ret = 0;
- /* Cleanup */
-out:
- libvlc_release (vlc);
-
- return ret;
-}
diff --git a/bin/darwinvlc.m b/bin/darwinvlc.m
new file mode 100644
index 0000000..1841aca
--- /dev/null
+++ b/bin/darwinvlc.m
@@ -0,0 +1,259 @@
+/*****************************************************************************
+ * darwinvlc.c: the darwin-specific VLC player
+ *****************************************************************************
+ * Copyright (C) 1998-2013 the VideoLAN team
+ * $Id$
+ *
+ * Authors: Vincent Seguin <seguin at via.ecp.fr>
+ * Samuel Hocevar <sam at zoy.org>
+ * Gildas Bazin <gbazin at videolan.org>
+ * Derk-Jan Hartman <hartman at videolan dot org>
+ * Lots of other people, see the libvlc AUTHORS file
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc/vlc.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+#include <locale.h>
+#include <signal.h>
+#ifdef HAVE_PTHREAD_H
+# include <pthread.h>
+#endif
+#include <unistd.h>
+#include <TargetConditionals.h>
+#import <CoreFoundation/CoreFoundation.h>
+
+extern void vlc_enable_override (void);
+
+static bool signal_ignored (int signum)
+{
+ struct sigaction sa;
+
+ if (sigaction (signum, NULL, &sa))
+ return false;
+ return ((sa.sa_flags & SA_SIGINFO)
+ ? (void *)sa.sa_sigaction : (void *)sa.sa_handler) == SIG_IGN;
+}
+
+static void vlc_kill (void *data)
+{
+ pthread_t *ps = data;
+ pthread_kill (*ps, SIGTERM);
+}
+
+static void exit_timeout (int signum)
+{
+ (void) signum;
+ signal (SIGINT, SIG_DFL);
+}
+
+/*****************************************************************************
+ * main: parse command line, start interface and spawn threads.
+ *****************************************************************************/
+int main( int i_argc, const char *ppsz_argv[] )
+{
+ /* The so-called POSIX-compliant MacOS X reportedly processes SIGPIPE even
+ * if it is blocked in all thread.
+ * Note: this is NOT an excuse for not protecting against SIGPIPE. If
+ * LibVLC runs outside of VLC, we cannot rely on this code snippet. */
+ signal (SIGPIPE, SIG_IGN);
+ /* Restore SIGCHLD in case our parent process ignores it. */
+ signal (SIGCHLD, SIG_DFL);
+
+#ifndef NDEBUG
+ /* Activate malloc checking routines to detect heap corruptions. */
+ setenv ("MALLOC_CHECK_", "2", 1);
+#endif
+
+#ifdef TOP_BUILDDIR
+ setenv ("VLC_PLUGIN_PATH", TOP_BUILDDIR"/modules", 1);
+ setenv ("VLC_DATA_PATH", TOP_SRCDIR"/share", 1);
+#endif
+
+#ifndef ALLOW_RUN_AS_ROOT
+ if (geteuid () == 0)
+ {
+ fprintf (stderr, "VLC is not supposed to be run as root. Sorry.\n"
+ "If you need to use real-time priorities and/or privileged TCP ports\n"
+ "you can use %s-wrapper (make sure it is Set-UID root and\n"
+ "cannot be run by non-trusted users first).\n", ppsz_argv[0]);
+ return 1;
+ }
+#endif
+
+ setlocale (LC_ALL, "");
+
+ if (isatty (STDERR_FILENO))
+ /* This message clutters error logs. It is printed only on a TTY.
+ * Fortunately, LibVLC prints version info with -vv anyway. */
+ fprintf (stderr, "VLC media player %s (revision %s)\n",
+ libvlc_get_version(), libvlc_get_changeset());
+
+ sigset_t set;
+
+ sigemptyset (&set);
+ /* VLC uses sigwait() to dequeue interesting signals.
+ * For this to work, those signals must be blocked in all threads,
+ * including the thread calling sigwait() (see the man page for details).
+ *
+ * There are two advantages to sigwait() over traditional signal handlers:
+ * - delivery is synchronous: no need to worry about async-safety,
+ * - EINTR is not generated: other threads need not handle that error.
+ * That being said, some LibVLC programs do not use sigwait(). Therefore
+ * EINTR must still be handled cleanly, notably from poll() calls.
+ *
+ * Signals that request a clean shutdown, and force an unclean shutdown
+ * if they are triggered again 2+ seconds later.
+ * We have to handle SIGTERM cleanly because of daemon mode. */
+ sigaddset (&set, SIGINT);
+ sigaddset (&set, SIGHUP);
+ sigaddset (&set, SIGQUIT);
+ sigaddset (&set, SIGTERM);
+
+ /* SIGPIPE can happen and would crash the process. On modern systems,
+ * the MSG_NOSIGNAL flag protects socket write operations against SIGPIPE.
+ * But we still need to block SIGPIPE when:
+ * - writing to pipes,
+ * - using write() instead of send() for code not specific to sockets.
+ * LibVLC code assumes that SIGPIPE is blocked. Other LibVLC applications
+ * shall block it (or handle it somehow) too.
+ */
+ sigaddset (&set, SIGPIPE);
+
+ /* SIGCHLD must be dequeued to clean up zombie child processes.
+ * Furthermore the handler must not be set to SIG_IGN (see above).
+ * We cannot pragmatically handle EINTR, short reads and short writes
+ * in every code paths (including underlying libraries). So we just
+ * block SIGCHLD in all threads, and dequeue it below. */
+ sigaddset (&set, SIGCHLD);
+
+ /* Block all these signals */
+ pthread_sigmask (SIG_SETMASK, &set, NULL);
+
+ const char *argv[i_argc + 2];
+ int argc = 0;
+
+ argv[argc++] = "--no-ignore-config";
+ argv[argc++] = "--media-library";
+
+ /* overwrite system language on Mac */
+#if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR // TARGET_OS_MAC is unspecific
+ char *lang = NULL;
+
+ for (int i = 0; i < i_argc; i++) {
+ if (!strncmp(ppsz_argv[i], "--language", 10)) {
+ lang = strstr(ppsz_argv[i], "=");
+ ppsz_argv++, i_argc--;
+ continue;
+ }
+ }
+ if (lang && strncmp( lang, "auto", 4 )) {
+ char tmp[11];
+ snprintf(tmp, 11, "LANG%s", lang);
+ putenv(tmp);
+ }
+
+ if (!lang) {
+ CFStringRef language;
+ language = (CFStringRef)CFPreferencesCopyAppValue(CFSTR("language"),
+ kCFPreferencesCurrentApplication);
+ if (language) {
+ CFIndex length = CFStringGetLength(language) + 1;
+ if (length > 0) {
+ CFIndex maxSize = CFStringGetMaximumSizeForEncoding(length, kCFStringEncodingUTF8);
+ lang = (char *)malloc(maxSize);
+ CFStringGetCString(language, lang, maxSize - 1, kCFStringEncodingUTF8);
+ }
+ if (strncmp( lang, "auto", 4 )) {
+ char tmp[11];
+ snprintf(tmp, 11, "LANG=%s", lang);
+ putenv(tmp);
+ }
+ CFRelease(language);
+ }
+ }
+#endif
+
+ ppsz_argv++; i_argc--; /* skip executable path */
+
+ /* When VLC.app is run by double clicking in Mac OS X, the 2nd arg
+ * is the PSN - process serial number (a unique PID-ish thingie)
+ * still ok for real Darwin & when run from command line
+ * for example -psn_0_9306113 */
+ if (i_argc >= 1 && !strncmp (*ppsz_argv, "-psn" , 4))
+ ppsz_argv++, i_argc--;
+
+ memcpy (argv + argc, ppsz_argv, i_argc * sizeof (*argv));
+ argc += i_argc;
+ argv[argc] = NULL;
+
+ vlc_enable_override ();
+
+ pthread_t self = pthread_self ();
+
+ /* Initialize libvlc */
+ libvlc_instance_t *vlc = libvlc_new (argc, argv);
+ if (vlc == NULL)
+ return 1;
+
+ int ret = 1;
+ libvlc_set_exit_handler (vlc, vlc_kill, &self);
+ libvlc_set_app_id (vlc, "org.VideoLAN.VLC", PACKAGE_VERSION, PACKAGE_NAME);
+ libvlc_set_user_agent (vlc, "VLC media player", "VLC/"PACKAGE_VERSION);
+
+ libvlc_add_intf (vlc, "hotkeys,none");
+
+ libvlc_playlist_play (vlc, -1, 0, NULL);
+ if (libvlc_add_intf (vlc, NULL))
+ goto out;
+
+ /* Qt4 insists on catching SIGCHLD via signal handler. To work around that,
+ * unblock it after all our child threads are created. */
+ sigdelset (&set, SIGCHLD);
+ pthread_sigmask (SIG_SETMASK, &set, NULL);
+
+ /* Do not dequeue SIGHUP if it is ignored (nohup) */
+ if (signal_ignored (SIGHUP))
+ sigdelset (&set, SIGHUP);
+ /* Ignore SIGPIPE */
+ sigdelset (&set, SIGPIPE);
+
+ int signum;
+ sigwait (&set, &signum);
+
+ /* Restore default signal behaviour after 3 seconds */
+ sigemptyset (&set);
+ sigaddset (&set, SIGINT);
+ sigaddset (&set, SIGALRM);
+ signal (SIGINT, SIG_IGN);
+ signal (SIGALRM, exit_timeout);
+ pthread_sigmask (SIG_UNBLOCK, &set, NULL);
+ alarm (3);
+
+ ret = 0;
+ /* Cleanup */
+out:
+ libvlc_release (vlc);
+
+ return ret;
+}
diff --git a/extras/package/macosx/build-package.sh b/extras/package/macosx/build-package.sh
index fe4a52a..446f1da 100644
--- a/extras/package/macosx/build-package.sh
+++ b/extras/package/macosx/build-package.sh
@@ -228,8 +228,8 @@ fi
##########################
# Hack for VLC.app
if [ "$FULL_PRODUCT_NAME" = "VLC.app" ] ; then
- vlc_install "bin/${prefix}" "vlc" "${target}" "bin" "@loader_path/lib"
- mv ${target}/vlc ${target}/VLC
+ vlc_install "bin/${prefix}" "vlc-osx" "${target}" "bin" "@loader_path/lib"
+ mv "${target}/vlc-osx" "${target}/VLC"
chmod +x ${target}/VLC
else
vlc_install "bin/${prefix}" "vlc" "${target}/bin" "bin" "@loader_path/../lib"
diff --git a/extras/package/macosx/package.mak b/extras/package/macosx/package.mak
index f709d81..ea16038 100644
--- a/extras/package/macosx/package.mak
+++ b/extras/package/macosx/package.mak
@@ -10,7 +10,7 @@ endif
VLC-dev.app: VLC-tmp
rm -Rf $@
cp -R VLC-tmp $@
- $(INSTALL) -m 0755 $(top_builddir)/bin/.libs/vlc $@/Contents/MacOS/VLC
+ $(INSTALL) -m 0755 $(top_builddir)/bin/.libs/vlc-osx $@/Contents/MacOS/VLC
$(LN_S) -f ../../../modules $@/Contents/MacOS/plugins
# VLC.app for packaging and giving it to your friends
diff --git a/extras/package/macosx/vlc.xcodeproj/project.pbxproj b/extras/package/macosx/vlc.xcodeproj/project.pbxproj
index 848c7d3..18cf45c 100644
--- a/extras/package/macosx/vlc.xcodeproj/project.pbxproj
+++ b/extras/package/macosx/vlc.xcodeproj/project.pbxproj
@@ -358,6 +358,7 @@
1C88BCC219DC7CB300645190 /* ys-fs_volume_slider_knob_highlight.png in Resources */ = {isa = PBXBuildFile; fileRef = 1C88BC8C19DC7CB300645190 /* ys-fs_volume_slider_knob_highlight.png */; };
1C88BCC319DC7CB300645190 /* ys-fs_volume_slider_knob_highlight at 2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1C88BC8D19DC7CB300645190 /* ys-fs_volume_slider_knob_highlight at 2x.png */; };
1CBB2CC81B06A6DE00110ADA /* Help.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1CBB2CC61B06A6DE00110ADA /* Help.xib */; };
+ 1CC25CA81B2C585D0003F994 /* darwinvlc.m in Sources */ = {isa = PBXBuildFile; fileRef = 1CC25CA71B2C585D0003F994 /* darwinvlc.m */; };
1CCB5F511A62A724004C3E90 /* about.h in Sources */ = {isa = PBXBuildFile; fileRef = 8EE1AF9F044465080059A3A7 /* about.h */; };
1CCB5F521A62A724004C3E90 /* about.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EE1AFA0044465080059A3A7 /* about.m */; };
1CCB5F531A62A724004C3E90 /* AddonListDataSource.h in Sources */ = {isa = PBXBuildFile; fileRef = 7DF0435E1972E26A0022B534 /* AddonListDataSource.h */; };
@@ -1231,6 +1232,7 @@
1C88BC8C19DC7CB300645190 /* ys-fs_volume_slider_knob_highlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ys-fs_volume_slider_knob_highlight.png"; sourceTree = "<group>"; };
1C88BC8D19DC7CB300645190 /* ys-fs_volume_slider_knob_highlight at 2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "ys-fs_volume_slider_knob_highlight at 2x.png"; sourceTree = "<group>"; };
1CBB2CC71B06A6DE00110ADA /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Resources/English.lproj/Help.xib; sourceTree = "<group>"; };
+ 1CC25CA71B2C585D0003F994 /* darwinvlc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = darwinvlc.m; path = ../../../bin/darwinvlc.m; sourceTree = "<group>"; };
1CCB5F2F1A62A6A5004C3E90 /* pseudo-vlc.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "pseudo-vlc.app"; sourceTree = BUILT_PRODUCTS_DIR; };
1CE5ED1B19DD6AB700FCEFD3 /* lion-window-fullscreen-on.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lion-window-fullscreen-on.png"; sourceTree = "<group>"; };
1CE5ED1C19DD6AB700FCEFD3 /* lion-window-fullscreen-on at 2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "lion-window-fullscreen-on at 2x.png"; sourceTree = "<group>"; };
@@ -1251,7 +1253,6 @@
7D3F652718805297005776C4 /* BWQuincyManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = BWQuincyManager.m; path = ../../../modules/gui/macosx/BWQuincyManager.m; sourceTree = SOURCE_ROOT; };
7D3F652818805297005776C4 /* BWQuincyUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BWQuincyUI.h; path = ../../../modules/gui/macosx/BWQuincyUI.h; sourceTree = SOURCE_ROOT; };
7D3F652918805297005776C4 /* BWQuincyUI.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = BWQuincyUI.m; path = ../../../modules/gui/macosx/BWQuincyUI.m; sourceTree = SOURCE_ROOT; };
- 7D7DC2CA182E86D9008C9E3E /* darwinvlc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = darwinvlc.c; path = ../../../bin/darwinvlc.c; sourceTree = "<group>"; };
7D8BB0B318302AC000FAE9B7 /* DebugMessageVisualizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = DebugMessageVisualizer.h; path = ../../../modules/gui/macosx/DebugMessageVisualizer.h; sourceTree = SOURCE_ROOT; };
7D8BB0B418302AC000FAE9B7 /* DebugMessageVisualizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = DebugMessageVisualizer.m; path = ../../../modules/gui/macosx/DebugMessageVisualizer.m; sourceTree = SOURCE_ROOT; };
7D8BB0B61830311300FAE9B7 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Resources/English.lproj/DebugMessageVisualizer.xib; sourceTree = "<group>"; };
@@ -2877,7 +2878,7 @@
CCDDF1AF172FF4D6007729A1 /* core */ = {
isa = PBXGroup;
children = (
- 7D7DC2CA182E86D9008C9E3E /* darwinvlc.c */,
+ 1CC25CA71B2C585D0003F994 /* darwinvlc.m */,
CC4D67F71348F601003FCC5B /* specific.c */,
CCDDF1AC172FF4C4007729A1 /* netconf.c */,
CCDDF1AD172FF4C4007729A1 /* dirs.c */,
@@ -3931,6 +3932,7 @@
1CCB5F791A62A724004C3E90 /* open.h in Sources */,
1CCB5F7A1A62A724004C3E90 /* open.m in Sources */,
1CCB5F7B1A62A724004C3E90 /* output.h in Sources */,
+ 1CC25CA81B2C585D0003F994 /* darwinvlc.m in Sources */,
1CCB5F7C1A62A724004C3E90 /* output.m in Sources */,
1CCB5F7D1A62A724004C3E90 /* playlist.h in Sources */,
1CCB5F7E1A62A724004C3E90 /* playlist.m in Sources */,
--
2.3.2 (Apple Git-55)
More information about the vlc-devel
mailing list