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,75 **** # ! # MacOs jfxmedia makefile # BUILD_DIR = $(OUTPUT_DIR)/$(BUILD_TYPE) - TARGET_DIRS = $(BUILD_DIR) - SRCBASE_DIR = ../.. OBJBASE_DIR = $(BUILD_DIR)/obj/jfxmedia BASE_DIR = ../../.. GSTREAMER_LITE_DIR = $(BASE_DIR)/gstreamer/gstreamer-lite GLIB_LITE_DIR = $(BASE_DIR)/gstreamer/3rd_party/glib/glib-2.28.8 - DIRLIST = MediaManagement \ - Locator \ - PipelineManagement \ - jni \ - Utils \ - Utils/posix \ - platform/gstreamer \ - platform/osx \ - Projects/utils - TARGET_NAME = lib$(BASE_NAME).dylib TARGET = $(BUILD_DIR)/$(TARGET_NAME) CFLAGS = -arch x86_64 \ -fPIC \ -Werror=implicit-function-declaration \ -DTARGET_OS_MAC=1 \ -D_GNU_SOURCE \ - -DGST_REMOVE_DEPRECATED \ - -DGST_DISABLE_GST_DEBUG \ - -DGST_DISABLE_LOADSAVE \ - -DGST_DISABLE_XML \ - -DHAVE_CONFIG_H \ - -DJFXMEDIA_JNI_EXPORTS \ - -DGSTREAMER_LITE \ -msse2 \ -mmacosx-version-min=10.7 ifeq ($(BUILD_TYPE), release) CFLAGS += -Os else CFLAGS += -O0 -g -Wall endif ! BASE_INCLUDES = -I$(JAVA_HOME)/include \ -I$(JAVA_HOME)/include/darwin \ -I$(SRCBASE_DIR) \ -I$(SRCBASE_DIR)/jni \ -I$(GENERATED_HEADERS_DIR) ! INCLUDES = $(BASE_INCLUDES) \ -I$(GLIB_LITE_DIR)/ \ -I$(GLIB_LITE_DIR)/glib \ -I$(GLIB_LITE_DIR)/gmodule \ -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 ! CPP_SOURCES = \ MediaManagement/Media.cpp \ MediaManagement/MediaManager.cpp \ Locator/Locator.cpp \ Locator/LocatorStream.cpp \ PipelineManagement/Pipeline.cpp \ --- 1,92 ---- # ! # 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) SRCBASE_DIR = ../.. OBJBASE_DIR = $(BUILD_DIR)/obj/jfxmedia BASE_DIR = ../../.. GSTREAMER_LITE_DIR = $(BASE_DIR)/gstreamer/gstreamer-lite GLIB_LITE_DIR = $(BASE_DIR)/gstreamer/3rd_party/glib/glib-2.28.8 TARGET_NAME = lib$(BASE_NAME).dylib TARGET = $(BUILD_DIR)/$(TARGET_NAME) + # separate library for QTKit based platform + QTK_NAME = lib$(BASE_NAME)_qtkit.dylib + QTK_LIB = $(BUILD_DIR)/$(QTK_NAME) + + # Set up base search path for source and headers + VPATH = $(SRCBASE_DIR):$(GENERATED_HEADERS_DIR):$(JAVA_HOME)/include:$(JAVA_HOME)/include/darwin + + # ------------------------------------------------------------------ + # Base compile/link flags + CFLAGS = -arch x86_64 \ + -pipe \ -fPIC \ -Werror=implicit-function-declaration \ -DTARGET_OS_MAC=1 \ -D_GNU_SOURCE \ -msse2 \ -mmacosx-version-min=10.7 ifeq ($(BUILD_TYPE), release) CFLAGS += -Os else CFLAGS += -O0 -g -Wall endif ! ! INCLUDES = -I$(JAVA_HOME)/include \ -I$(JAVA_HOME)/include/darwin \ -I$(SRCBASE_DIR) \ -I$(SRCBASE_DIR)/jni \ -I$(GENERATED_HEADERS_DIR) ! ! LDFLAGS = -mmacosx-version-min=10.7 \ ! -arch x86_64 \ ! -L$(BUILD_DIR) \ ! -lobjc \ ! -framework Cocoa \ ! -framework CoreVideo ! ! # ------------------------------------------------------------------ ! # jfxmedia compile/link flags ! ! JFXMEDIA_CFLAGS = $(CFLAGS) \ ! -DGST_REMOVE_DEPRECATED \ ! -DGST_DISABLE_GST_DEBUG \ ! -DGST_DISABLE_LOADSAVE \ ! -DGST_DISABLE_XML \ ! -DGSTREAMER_LITE \ ! -DJFXMEDIA_JNI_EXPORTS \ ! -DHAVE_CONFIG_H \ ! ! JFXMEDIA_INCLUDES = $(INCLUDES) \ -I$(GLIB_LITE_DIR)/ \ -I$(GLIB_LITE_DIR)/glib \ -I$(GLIB_LITE_DIR)/gmodule \ -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 ! JFXMEDIA_LDFLAGS = $(LDFLAGS) \ ! -Wl,-install_name,@rpath/$(TARGET_NAME) \ ! -lgstreamer-lite \ ! -lglib-lite ! ! # ------------------------------------------------------------------ ! # jfxmedia sources/objects ! JFXMEDIA_SOURCES = \ MediaManagement/Media.cpp \ MediaManagement/MediaManager.cpp \ Locator/Locator.cpp \ Locator/LocatorStream.cpp \ PipelineManagement/Pipeline.cpp \
*** 101,152 **** platform/gstreamer/GstVideoFrame.cpp \ platform/gstreamer/GstPlatform.cpp \ platform/gstreamer/GstEqualizerBand.cpp \ 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 ! 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 ! default: $(TARGET) ! $(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 $@ - $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.mm - $(CC) $(CFLAGS) $(INCLUDES) -x objective-c++ -c $< -o $@ ! $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.m ! $(CC) $(CFLAGS) $(INCLUDES) -x objective-c -c $< -o $@ ! $(OBJECTS): | $(OBJ_DIRS) $(TARGET_DIRS) ! $(OBJ_DIRS): ! mkdir -p $(OBJ_DIRS) ! $(TARGET_DIRS): ! mkdir -p $(TARGET_DIRS) ! $(TARGET): $(OBJECTS) ! $(LINK) -dynamiclib $(OBJECTS) $(LDFLAGS) -o $@ --- 118,190 ---- platform/gstreamer/GstVideoFrame.cpp \ platform/gstreamer/GstPlatform.cpp \ platform/gstreamer/GstEqualizerBand.cpp \ platform/gstreamer/GstMedia.cpp \ platform/gstreamer/GstMediaPlayer.cpp \ ! Utils/ColorConverter.c \ ! Utils/JObjectPeers.m \ ! Utils/JavaUtils.m \ ! Utils/MTObjectProxy.m \ platform/osx/OSXPlatform.mm \ platform/osx/OSXMediaPlayer.mm \ platform/osx/CVVideoFrame.mm ! JFXMEDIA_OBJECTS = \ ! $(patsubst %.c, $(OBJBASE_DIR)/%.o, $(filter %.c, $(JFXMEDIA_SOURCES))) \ ! $(patsubst %.m, $(OBJBASE_DIR)/%.o, $(filter %.m, $(JFXMEDIA_SOURCES))) \ ! $(patsubst %.cpp, $(OBJBASE_DIR)/%.o, $(filter %.cpp, $(JFXMEDIA_SOURCES))) \ ! $(patsubst %.mm, $(OBJBASE_DIR)/%.o, $(filter %.mm, $(JFXMEDIA_SOURCES))) ! # ------------------------------------------------------------------ ! # Rules .PHONY: default + default: $(TARGET) $(QTK_LIB) + + + # ------------------------------------------------------------------ + # jfxmedia rules + + # auto-dependencies + -include $(JFXMEDIA_OBJECTS:.o=.d) + + $(OBJBASE_DIR)/%.o: %.cpp + @mkdir -p $(dir $@) + $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x c++ -c $< -o $@ + + $(OBJBASE_DIR)/%.o: %.c + @mkdir -p $(dir $@) + $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x c -c $< -o $@ ! $(OBJBASE_DIR)/%.o: %.mm ! @mkdir -p $(dir $@) ! $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x objective-c++ -c $< -o $@ ! $(OBJBASE_DIR)/%.o: %.m ! @mkdir -p $(dir $@) ! $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x objective-c -c $< -o $@ ! $(TARGET): $(JFXMEDIA_OBJECTS) ! @mkdir -p $(dir $@) ! $(LINK) -dynamiclib $(JFXMEDIA_LDFLAGS) $(JFXMEDIA_OBJECTS) -o $@ ! # ------------------------------------------------------------------ ! # QTKit platform lib rules ! QTK_OBJBASE = $(OBJBASE_DIR)/qtk ! QTK_LDFLAGS = $(LDFLAGS) \ ! -Wl,-install_name,@rpath/$(QTK_NAME) \ ! -framework QTKit ! QTK_SOURCES = platform/osx/QTKMediaPlayer.mm ! QTK_OBJECTS = $(patsubst %.mm,$(QTK_OBJBASE)/%.o,$(QTK_SOURCES)) ! -include $(QTK_OBJECTS:.o=.d) ! $(QTK_OBJBASE)/%.o: %.mm ! @mkdir -p $(dir $@) ! $(CC) $(CFLAGS) $(INCLUDES) -MD -MF $(QTK_OBJBASE)/$*.d -x objective-c++ -c $< -o $@ + $(QTK_LIB): $(TARGET) $(QTK_OBJECTS) + @mkdir -p $(dir $@) + $(LINK) $(QTK_LDFLAGS) -dynamiclib $(QTK_OBJECTS) -l$(BASE_NAME) -o $@