< prev index next >

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

Print this page
rev 9506 : 8156563: JavaFX Ensemble8 media sample hang and crash
Reviewed-by: almatvee, kcr


  28 VPATH = $(SRCBASE_DIR):$(GENERATED_HEADERS_DIR):$(JAVA_HOME)/include:$(JAVA_HOME)/include/darwin
  29 
  30 # ------------------------------------------------------------------
  31 # Base compile/link flags
  32 
  33 CFLAGS = -arch x86_64 \
  34          -pipe \
  35          -fPIC                     \
  36          -Werror=implicit-function-declaration \
  37          -DTARGET_OS_MAC=1         \
  38          -D_GNU_SOURCE             \
  39          -msse2                    \
  40          -mmacosx-version-min=10.7
  41 
  42 ifeq ($(BUILD_TYPE), Release)
  43     CFLAGS += -Os
  44 else
  45     CFLAGS += -O0 -g -Wall
  46 endif
  47 
  48 
  49 INCLUDES = -I$(JAVA_HOME)/include \
  50            -I$(JAVA_HOME)/include/darwin \
  51            -I$(SRCBASE_DIR) \
  52            -I$(SRCBASE_DIR)/jni \
  53            -I$(GENERATED_HEADERS_DIR)
  54 
  55 
  56 LDFLAGS = -mmacosx-version-min=10.7 \
  57           -arch x86_64 \
  58           -L$(BUILD_DIR) \
  59           -lobjc \
  60           -framework Cocoa \
  61           -framework CoreVideo
  62 
  63 # ------------------------------------------------------------------
  64 # jfxmedia compile/link flags
  65 
  66 JFXMEDIA_CFLAGS = $(CFLAGS) \
  67          -DGST_REMOVE_DEPRECATED   \
  68          -DGST_DISABLE_GST_DEBUG   \
  69          -DGST_DISABLE_LOADSAVE    \
  70          -DGST_DISABLE_XML         \
  71          -DGSTREAMER_LITE          \
  72          -DJFXMEDIA_JNI_EXPORTS    \
  73          -DHAVE_CONFIG_H           \
  74 


  75 JFXMEDIA_INCLUDES = $(INCLUDES) \
  76            -I$(GLIB_LITE_DIR)/ \
  77            -I$(GLIB_LITE_DIR)/glib \
  78            -I$(GLIB_LITE_DIR)/gmodule \
  79            -I$(GLIB_LITE_DIR)/build/osx \
  80            -I$(GSTREAMER_LITE_DIR)/gstreamer \
  81            -I$(GSTREAMER_LITE_DIR)/gst-plugins-base/gst-libs \
  82            -I$(GSTREAMER_LITE_DIR)/gstreamer/libs
  83 
  84 JFXMEDIA_LDFLAGS = $(LDFLAGS) \
  85           -Wl,-install_name,@rpath/$(TARGET_NAME) \
  86           -lgstreamer-lite \
  87           -lglib-lite
  88 
  89 # ------------------------------------------------------------------
  90 # jfxmedia sources/objects
  91 
  92 JFXMEDIA_SOURCES =                                             \
  93               MediaManagement/Media.cpp                        \
  94               MediaManagement/MediaManager.cpp                 \


 144 # ------------------------------------------------------------------
 145 # Rules
 146 
 147 .PHONY: default, checklibs
 148 
 149 default: $(TARGET) $(QTK_LIB) $(AVF_LIB)
 150         @echo "Ensuring $(TARGET_NAME) does not link against QuickTime..."
 151         ! nm -m "$(TARGET)" | grep -E "(QTKit|QuickTime)"
 152         @echo "Ensuring $(AVF_NAME) does not link against QuickTime..."
 153         ! nm -m "$(AVF_LIB)" | grep -E "(QTKit|QuickTime)"
 154 
 155 
 156 # ------------------------------------------------------------------
 157 # jfxmedia rules
 158 
 159 # auto-dependencies
 160 -include $(JFXMEDIA_OBJECTS:.o=.d)
 161 
 162 $(OBJBASE_DIR)/%.o: %.cpp
 163         @mkdir -p $(dir $@)
 164         $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x c++ -c $< -o $@
 165 
 166 $(OBJBASE_DIR)/%.o: %.c
 167         @mkdir -p $(dir $@)
 168         $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x c -c $< -o $@
 169 
 170 $(OBJBASE_DIR)/%.o: %.mm
 171         @mkdir -p $(dir $@)
 172         $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x objective-c++ -c $< -o $@
 173 
 174 $(OBJBASE_DIR)/%.o: %.m
 175         @mkdir -p $(dir $@)
 176         $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x objective-c -c $< -o $@
 177 
 178 $(TARGET): $(JFXMEDIA_OBJECTS)
 179         @mkdir -p $(dir $@)
 180         $(LINK) -dynamiclib $(JFXMEDIA_LDFLAGS) $(JFXMEDIA_OBJECTS) -o $@
 181 
 182 
 183 # ------------------------------------------------------------------
 184 # AVFoundation platform lib rules
 185 
 186 ifeq ($(BUILD_TYPE), Release)
 187     AVF_XCRUN_FLAGS =
 188 else
 189     # add a -v flag to show the build environment when xcrun is invoked
 190     AVF_XCRUN_FLAGS = -v
 191 endif
 192 
 193 # The AVFoundation code uses ARC which is only supported by the clang compiler, so we'll
 194 # force the use of clang for this module.
 195 ifeq ($(COMPILE_PARFAIT), true)
 196   # call xcrun so we wrap the correct clang++ executable
 197   CLANG_PATH = $(shell xcrun -find clang++)
 198   AVF_CPP = parfait-clang++ --nativecxx "$(CLANG_PATH)"
 199 else
 200   # add -l to show the full command line used to invoke clang++ (for debugging purposes)
 201   AVF_CPP = xcrun -l $(AVF_XCRUN_FLAGS) clang++
 202 endif
 203 
 204 AVF_OBJBASE = $(OBJBASE_DIR)/avf
 205 
 206 # We need a full path to the right SDK
 207 # We use --sdk macosx to force it to use the latest macosx SDK, which should be 10.8 or later
 208 AVF_SYSROOT = $(shell xcodebuild -sdk macosx -version | grep '^Path: ' | sed 's/Path: //')
 209 
 210 # we have to remove -mmacosx-version-min=% from CFLAGS and LDFLAGS and set it to
 211 # 10.8 since this module requires features only in 10.8 and later
 212 AVF_LDFLAGS = $(filter-out -mmacosx-version-min=%, $(LDFLAGS)) \

 213               -isysroot "$(AVF_SYSROOT)" \
 214               -iframework"$(AVF_SYSROOT)/System/Library/Frameworks" \
 215               -mmacosx-version-min=10.8 \
 216               -Wl,-install_name,@rpath/$(AVF_NAME) \
 217               -framework AVFoundation \
 218               -framework CoreMedia \
 219               -framework Accelerate \
 220               -framework AudioUnit \
 221               -framework MediaToolbox
 222 
 223 AVF_CFLAGS = $(filter-out -mmacosx-version-min=%, $(CFLAGS)) \

 224              -isysroot "$(AVF_SYSROOT)" \
 225              -iframework"$(AVF_SYSROOT)/System/Library/Frameworks" \
 226              -mmacosx-version-min=10.8 \
 227              -DCA_AU_USE_FAST_DISPATCH=1 \
 228              -DCA_BASIC_AU_FEATURES=1 \
 229              -DCA_NO_AU_HOST_CALLBACKS=1 \
 230              -DCA_NO_AU_UI_FEATURES=1 \
 231              -DCA_USE_AUDIO_PLUGIN_ONLY=1 \
 232              -fobjc-arc
 233 
 234 # CoreAudio Utility Classes provided by Apple
 235 COREAUDIO_UTILITY_CLASSES = \
 236         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp \
 237         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.cpp \
 238         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUOutputElement.cpp \
 239         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp \
 240         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.cpp \
 241         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.cpp \
 242         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUEffectBase.cpp \
 243         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUBuffer.cpp \


 272 
 273 -include $(AVF_OBJECTS:.o=.d)
 274 
 275 $(AVF_OBJBASE)/%.o: %.cpp
 276         @mkdir -p $(dir $@)
 277         $(AVF_CPP) $(AVF_CFLAGS) $(AVF_INCLUDES) -MD -MF $(AVF_OBJBASE)/$*.d -x c++ -c $< -o $@
 278 
 279 $(AVF_OBJBASE)/%.o: %.mm
 280         @mkdir -p $(dir $@)
 281         $(AVF_CPP) $(AVF_CFLAGS) $(AVF_INCLUDES) -MD -MF $(AVF_OBJBASE)/$*.d -x objective-c++ -c $< -o $@
 282 
 283 $(AVF_LIB): $(TARGET) $(AVF_OBJECTS)
 284         @mkdir -p $(dir $@)
 285         $(AVF_CPP)  $(AVF_LDFLAGS) -dynamiclib $(AVF_OBJECTS) -l$(BASE_NAME) -o $@
 286 
 287 
 288 # ------------------------------------------------------------------
 289 # QTKit platform lib rules
 290 
 291 QTK_OBJBASE = $(OBJBASE_DIR)/qtk

 292 QTK_LDFLAGS = $(LDFLAGS) \
 293           -Wl,-install_name,@rpath/$(QTK_NAME) \
 294           -framework QTKit
 295 
 296 QTK_SOURCES = platform/osx/QTKMediaPlayer.mm
 297 QTK_OBJECTS = $(patsubst %.mm,$(QTK_OBJBASE)/%.o,$(QTK_SOURCES))
 298 
 299 -include $(QTK_OBJECTS:.o=.d)
 300 
 301 $(QTK_OBJBASE)/%.o: %.mm
 302         @mkdir -p $(dir $@)
 303         $(CC) $(CFLAGS) $(INCLUDES) -MD -MF $(QTK_OBJBASE)/$*.d -x objective-c++ -c $< -o $@
 304 
 305 $(QTK_LIB): $(TARGET) $(QTK_OBJECTS)
 306         @mkdir -p $(dir $@)
 307         $(LINK)  $(QTK_LDFLAGS) -dynamiclib $(QTK_OBJECTS) -l$(BASE_NAME) -o $@


  28 VPATH = $(SRCBASE_DIR):$(GENERATED_HEADERS_DIR):$(JAVA_HOME)/include:$(JAVA_HOME)/include/darwin
  29 
  30 # ------------------------------------------------------------------
  31 # Base compile/link flags
  32 
  33 CFLAGS = -arch x86_64 \
  34          -pipe \
  35          -fPIC                     \
  36          -Werror=implicit-function-declaration \
  37          -DTARGET_OS_MAC=1         \
  38          -D_GNU_SOURCE             \
  39          -msse2                    \
  40          -mmacosx-version-min=10.7
  41 
  42 ifeq ($(BUILD_TYPE), Release)
  43     CFLAGS += -Os
  44 else
  45     CFLAGS += -O0 -g -Wall
  46 endif
  47 

  48 INCLUDES = -I$(JAVA_HOME)/include \
  49            -I$(JAVA_HOME)/include/darwin \
  50            -I$(SRCBASE_DIR) \
  51            -I$(SRCBASE_DIR)/jni \
  52            -I$(GENERATED_HEADERS_DIR)
  53 
  54 # We need to ensure everything builds with libc++, so add it here
  55 LDFLAGS = -stdlib=libc++ -mmacosx-version-min=10.7 \
  56           -arch x86_64 \
  57           -L$(BUILD_DIR) \
  58           -lobjc \
  59           -framework Cocoa \
  60           -framework CoreVideo
  61 
  62 # ------------------------------------------------------------------
  63 # jfxmedia compile/link flags
  64 
  65 JFXMEDIA_CFLAGS = $(CFLAGS) \
  66          -DGST_REMOVE_DEPRECATED   \
  67          -DGST_DISABLE_GST_DEBUG   \
  68          -DGST_DISABLE_LOADSAVE    \
  69          -DGST_DISABLE_XML         \
  70          -DGSTREAMER_LITE          \
  71          -DJFXMEDIA_JNI_EXPORTS    \
  72          -DHAVE_CONFIG_H           \
  73 
  74 JFXMEDIA_CCFLAGS = -std=c++11 -stdlib=libc++ $(JFXMEDIA_CFLAGS) 
  75 
  76 JFXMEDIA_INCLUDES = $(INCLUDES) \
  77            -I$(GLIB_LITE_DIR)/ \
  78            -I$(GLIB_LITE_DIR)/glib \
  79            -I$(GLIB_LITE_DIR)/gmodule \
  80            -I$(GLIB_LITE_DIR)/build/osx \
  81            -I$(GSTREAMER_LITE_DIR)/gstreamer \
  82            -I$(GSTREAMER_LITE_DIR)/gst-plugins-base/gst-libs \
  83            -I$(GSTREAMER_LITE_DIR)/gstreamer/libs
  84 
  85 JFXMEDIA_LDFLAGS = $(LDFLAGS) \
  86           -Wl,-install_name,@rpath/$(TARGET_NAME) \
  87           -lgstreamer-lite \
  88           -lglib-lite
  89 
  90 # ------------------------------------------------------------------
  91 # jfxmedia sources/objects
  92 
  93 JFXMEDIA_SOURCES =                                             \
  94               MediaManagement/Media.cpp                        \
  95               MediaManagement/MediaManager.cpp                 \


 145 # ------------------------------------------------------------------
 146 # Rules
 147 
 148 .PHONY: default, checklibs
 149 
 150 default: $(TARGET) $(QTK_LIB) $(AVF_LIB)
 151         @echo "Ensuring $(TARGET_NAME) does not link against QuickTime..."
 152         ! nm -m "$(TARGET)" | grep -E "(QTKit|QuickTime)"
 153         @echo "Ensuring $(AVF_NAME) does not link against QuickTime..."
 154         ! nm -m "$(AVF_LIB)" | grep -E "(QTKit|QuickTime)"
 155 
 156 
 157 # ------------------------------------------------------------------
 158 # jfxmedia rules
 159 
 160 # auto-dependencies
 161 -include $(JFXMEDIA_OBJECTS:.o=.d)
 162 
 163 $(OBJBASE_DIR)/%.o: %.cpp
 164         @mkdir -p $(dir $@)
 165         $(CC) $(JFXMEDIA_CCFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x c++ -c $< -o $@
 166 
 167 $(OBJBASE_DIR)/%.o: %.c
 168         @mkdir -p $(dir $@)
 169         $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x c -c $< -o $@
 170 
 171 $(OBJBASE_DIR)/%.o: %.mm
 172         @mkdir -p $(dir $@)
 173         $(CC) $(JFXMEDIA_CCFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x objective-c++ -c $< -o $@
 174 
 175 $(OBJBASE_DIR)/%.o: %.m
 176         @mkdir -p $(dir $@)
 177         $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x objective-c -c $< -o $@
 178 
 179 $(TARGET): $(JFXMEDIA_OBJECTS)
 180         @mkdir -p $(dir $@)
 181         $(LINK) -dynamiclib $(JFXMEDIA_LDFLAGS) $(JFXMEDIA_OBJECTS) -o $@
 182 
 183 
 184 # ------------------------------------------------------------------
 185 # AVFoundation platform lib rules
 186 
 187 ifeq ($(BUILD_TYPE), Release)
 188     AVF_XCRUN_FLAGS =
 189 else
 190     # add a -v flag to show the build environment when xcrun is invoked
 191     AVF_XCRUN_FLAGS = -v
 192 endif
 193 
 194 # The AVFoundation code uses ARC which is only supported by the clang compiler, so we'll
 195 # force the use of clang for this module.
 196 ifeq ($(COMPILE_PARFAIT), true)
 197   # call xcrun so we wrap the correct clang++ executable
 198   CLANG_PATH := $(shell xcrun -find clang++)
 199   AVF_CPP = parfait-clang++ --nativecxx "$(CLANG_PATH)"
 200 else
 201   AVF_CPP := $(shell xcrun -find $(AVF_XCRUN_FLAGS) clang++)

 202 endif
 203 
 204 AVF_OBJBASE = $(OBJBASE_DIR)/avf
 205 
 206 # We need a full path to the right SDK
 207 # We use --sdk macosx to force it to use the latest macosx SDK, which should be 10.8 or later
 208 AVF_SYSROOT = $(shell xcodebuild -sdk macosx -version | grep '^Path: ' | sed 's/Path: //')
 209 
 210 # we have to remove -mmacosx-version-min=% from CFLAGS and LDFLAGS and set it to
 211 # 10.8 since this module requires features only in 10.8 and later
 212 AVF_LDFLAGS = $(filter-out -mmacosx-version-min=%, $(LDFLAGS)) \
 213               -std=c++11 -stdlib=libc++ \
 214               -isysroot "$(AVF_SYSROOT)" \
 215               -iframework"$(AVF_SYSROOT)/System/Library/Frameworks" \
 216               -mmacosx-version-min=10.8 \
 217               -Wl,-install_name,@rpath/$(AVF_NAME) \
 218               -framework AVFoundation \
 219               -framework CoreMedia \
 220               -framework Accelerate \
 221               -framework AudioUnit \
 222               -framework MediaToolbox
 223 
 224 AVF_CFLAGS = $(filter-out -mmacosx-version-min=%, $(CFLAGS)) \
 225              -std=c++11 -stdlib=libc++ \
 226              -isysroot "$(AVF_SYSROOT)" \
 227              -iframework"$(AVF_SYSROOT)/System/Library/Frameworks" \
 228              -mmacosx-version-min=10.8 \
 229              -DCA_AU_USE_FAST_DISPATCH=1 \
 230              -DCA_BASIC_AU_FEATURES=1 \
 231              -DCA_NO_AU_HOST_CALLBACKS=1 \
 232              -DCA_NO_AU_UI_FEATURES=1 \
 233              -DCA_USE_AUDIO_PLUGIN_ONLY=1 \
 234              -fobjc-arc
 235 
 236 # CoreAudio Utility Classes provided by Apple
 237 COREAUDIO_UTILITY_CLASSES = \
 238         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp \
 239         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.cpp \
 240         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUOutputElement.cpp \
 241         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp \
 242         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.cpp \
 243         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.cpp \
 244         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUEffectBase.cpp \
 245         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUBuffer.cpp \


 274 
 275 -include $(AVF_OBJECTS:.o=.d)
 276 
 277 $(AVF_OBJBASE)/%.o: %.cpp
 278         @mkdir -p $(dir $@)
 279         $(AVF_CPP) $(AVF_CFLAGS) $(AVF_INCLUDES) -MD -MF $(AVF_OBJBASE)/$*.d -x c++ -c $< -o $@
 280 
 281 $(AVF_OBJBASE)/%.o: %.mm
 282         @mkdir -p $(dir $@)
 283         $(AVF_CPP) $(AVF_CFLAGS) $(AVF_INCLUDES) -MD -MF $(AVF_OBJBASE)/$*.d -x objective-c++ -c $< -o $@
 284 
 285 $(AVF_LIB): $(TARGET) $(AVF_OBJECTS)
 286         @mkdir -p $(dir $@)
 287         $(AVF_CPP)  $(AVF_LDFLAGS) -dynamiclib $(AVF_OBJECTS) -l$(BASE_NAME) -o $@
 288 
 289 
 290 # ------------------------------------------------------------------
 291 # QTKit platform lib rules
 292 
 293 QTK_OBJBASE = $(OBJBASE_DIR)/qtk
 294 QTK_CCFLAGS = -std=c++11 -stdlib=libc++ $(CFLAGS)
 295 QTK_LDFLAGS = $(LDFLAGS) \
 296               -Wl,-install_name,@rpath/$(QTK_NAME) \
 297               -framework QTKit
 298 
 299 QTK_SOURCES = platform/osx/QTKMediaPlayer.mm
 300 QTK_OBJECTS = $(patsubst %.mm,$(QTK_OBJBASE)/%.o,$(QTK_SOURCES))
 301 
 302 -include $(QTK_OBJECTS:.o=.d)
 303 
 304 $(QTK_OBJBASE)/%.o: %.mm
 305         @mkdir -p $(dir $@)
 306         $(CC) $(QTK_CCFLAGS) $(INCLUDES) -MD -MF $(QTK_OBJBASE)/$*.d -x objective-c++ -c $< -o $@
 307 
 308 $(QTK_LIB): $(TARGET) $(QTK_OBJECTS)
 309         @mkdir -p $(dir $@)
 310         $(LINK)  $(QTK_LDFLAGS) -dynamiclib $(QTK_OBJECTS) -l$(BASE_NAME) -o $@
< prev index next >