modules/media/src/main/native/jfxmedia/projects/mac/Makefile

Print this page
rev 7591 : RT-38074: [macosx] Separate QTKit platform code from core media code so it can be removed for MAS
Reviewed-by:

@@ -1,9 +1,11 @@
 #
-# MacOs jfxmedia makefile
+# Mac OS X jfxmedia makefile
 #
 
+# OUTPUT_DIR, BUILD_TYPE and BASE_NAME are passed on the command line or from the 
+# parent make process
 BUILD_DIR = $(OUTPUT_DIR)/$(BUILD_TYPE)
 TARGET_DIRS = $(BUILD_DIR)
 
 SRCBASE_DIR = ../..
 OBJBASE_DIR = $(BUILD_DIR)/obj/jfxmedia

@@ -23,11 +25,14 @@
           Projects/utils
 
 TARGET_NAME = lib$(BASE_NAME).dylib
 TARGET = $(BUILD_DIR)/$(TARGET_NAME)
 
+QTMEDIA = $(BUILD_DIR)/lib$(TARGET_NAME)_qtkit.dylib
+
 CFLAGS = -arch x86_64 \
+         -pipe \
          -fPIC                     \
          -Werror=implicit-function-declaration \
          -DTARGET_OS_MAC=1         \
          -D_GNU_SOURCE             \
          -DGST_REMOVE_DEPRECATED   \

@@ -59,15 +64,19 @@
            -I$(GLIB_LITE_DIR)/build/osx \
            -I$(GSTREAMER_LITE_DIR)/gstreamer \
            -I$(GSTREAMER_LITE_DIR)/gst-plugins-base/gst-libs \
            -I$(GSTREAMER_LITE_DIR)/gstreamer/libs
 
-LDFLAGS = -mmacosx-version-min=10.7 -arch x86_64 \
-          -L$(BUILD_DIR) -Wl,-install_name,@rpath/$(TARGET_NAME) \
-          -lgstreamer-lite -lglib-lite -lobjc \
-          -framework CoreVideo -framework CoreAudio -framework QTKit \
-          -framework Cocoa -framework Carbon -framework CoreServices -framework JavaVM
+LDFLAGS = -mmacosx-version-min=10.7 \
+          -arch x86_64 \
+          -L$(BUILD_DIR) \
+          -Wl,-install_name,@rpath/$(TARGET_NAME) \
+          -lobjc \
+          -framework Cocoa \
+          -framework CoreVideo \
+          -lgstreamer-lite \
+          -lglib-lite
 
 CPP_SOURCES =                                                  \
               MediaManagement/Media.cpp                        \
               MediaManagement/MediaManager.cpp                 \
               Locator/Locator.cpp                              \

@@ -104,31 +113,36 @@
               platform/gstreamer/GstMedia.cpp                  \
               platform/gstreamer/GstMediaPlayer.cpp            \
 
 C_SOURCES =   Utils/ColorConverter.c
 
-OBJCMM_SOURCES =                                               \
-              platform/osx/OSXPlatform.mm                      \
-              platform/osx/OSXMediaPlayer.mm                   \
-              platform/osx/QTKMediaPlayer.mm                   \
-              platform/osx/CVVideoFrame.mm
-
 OBJCM_SOURCES =                                                \
               Utils/JObjectPeers.m                             \
               Utils/JavaUtils.m                                \
               Utils/MTObjectProxy.m
 
+OBJCMM_SOURCES = platform/osx/OSXPlatform.mm    \
+                 platform/osx/OSXMediaPlayer.mm \
+                 platform/osx/CVVideoFrame.mm
+          
 OBJ_DIRS = $(addprefix $(OBJBASE_DIR)/,$(DIRLIST))
+
+
 OBJECTS  = $(patsubst %.cpp,$(OBJBASE_DIR)/%.o,$(CPP_SOURCES)) \
            $(patsubst %.c,$(OBJBASE_DIR)/%.o,$(C_SOURCES)) \
            $(patsubst %.mm,$(OBJBASE_DIR)/%.o,$(OBJCMM_SOURCES)) \
            $(patsubst %.m,$(OBJBASE_DIR)/%.o,$(OBJCM_SOURCES))
 
-.PHONY: default
+# Always force jfxmedia_qtkit through it's own makefile
+.PHONY: default $(QTMEDIA)
 
-default: $(TARGET)
+default: $(TARGET) $(QTMEDIA)
 
+$(QTMEDIA): $(TARGET)
+        $(MAKE) -f qtmedia.mk OUTPUT_DIR=$(OUTPUT_DIR) BUILD_TYPE=$(BUILD_TYPE) BASE_NAME=$(BASE_NAME)
+
+# jfxmedia objects
 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.cpp
         $(CC) $(CFLAGS) $(INCLUDES) -x c++ -c $< -o $@
 
 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.c
         $(CC) $(CFLAGS) $(INCLUDES) -x c -c $< -o $@

@@ -147,6 +161,5 @@
 $(TARGET_DIRS):
         mkdir -p $(TARGET_DIRS)
 
 $(TARGET): $(OBJECTS)
         $(LINK) -dynamiclib $(OBJECTS) $(LDFLAGS) -o $@
-