[vlc-commits] darwinvlc: compile with objc and fix build system

David Fuhrmann git at videolan.org
Sat Jun 20 12:40:39 CEST 2015


vlc | branch: master | David Fuhrmann <dfuhrmann at videolan.org> | Mon Jun 15 19:36:27 2015 +0200| [021f50d9b56504d76de32646c15804017cf7eacf] | committer: David Fuhrmann

darwinvlc: compile with objc and fix build system

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.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=021f50d9b56504d76de32646c15804017cf7eacf
---

 bin/Makefile.am                                     |   19 ++++++++++++++-----
 bin/{darwinvlc.c => darwinvlc.m}                    |    0
 extras/package/macosx/build-package.sh              |    4 ++--
 extras/package/macosx/package.mak                   |    2 +-
 extras/package/macosx/vlc.xcodeproj/project.pbxproj |    6 ++++--
 5 files changed, 21 insertions(+), 10 deletions(-)

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.m
similarity index 100%
rename from bin/darwinvlc.c
rename to bin/darwinvlc.m
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 */,



More information about the vlc-commits mailing list