< prev index next >

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

Print this page
rev 9887 : 8145604: Change minimum version of OS X SDK to 10.9
Reviewed-by: almatvee


  13 GLIB_LITE_DIR = $(BASE_DIR)/gstreamer/3rd_party/glib/glib-2.28.8
  14 
  15 OSX_PLATFORM_BASE = $(SRCBASE_DIR)/platform/osx
  16 
  17 TARGET_NAME = lib$(BASE_NAME).dylib
  18 TARGET = $(BUILD_DIR)/$(TARGET_NAME)
  19 
  20 # separate library for QTKit based platform
  21 QTK_NAME = lib$(BASE_NAME)_qtkit.dylib
  22 QTK_LIB = $(BUILD_DIR)/$(QTK_NAME)
  23 
  24 AVF_NAME = lib$(BASE_NAME)_avf.dylib
  25 AVF_LIB = $(BUILD_DIR)/$(AVF_NAME)
  26 
  27 # Set up base search path for source and headers
  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) \


 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 \
 246         platform/osx/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioChannelLayout.cpp \
 247         platform/osx/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CASpectralProcessor.cpp \
 248         platform/osx/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAStreamBasicDescription.cpp \


 259         platform/osx/avf/AVFAudioProcessor.mm \
 260         platform/osx/avf/AVFAudioEqualizer.cpp \
 261         platform/osx/avf/AVFAudioSpectrumUnit.cpp \
 262         platform/osx/avf/AVFSoundLevelUnit.cpp \
 263         platform/osx/avf/AVFKernelProcessor.cpp \
 264         $(COREAUDIO_UTILITY_CLASSES)
 265 
 266 
 267 AVF_OBJECTS = $(patsubst %.mm,$(AVF_OBJBASE)/%.o,$(filter %.mm, $(AVF_SOURCES))) \
 268               $(patsubst %.cpp,$(AVF_OBJBASE)/%.o,$(filter %.cpp, $(AVF_SOURCES)))
 269 
 270 AVF_INCLUDES = \
 271     $(INCLUDES) \
 272     $(COREAUDIO_INCLUDES) \
 273     -I$(OSX_PLATFORM_BASE)
 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 


  13 GLIB_LITE_DIR = $(BASE_DIR)/gstreamer/3rd_party/glib/glib-2.28.8
  14 
  15 OSX_PLATFORM_BASE = $(SRCBASE_DIR)/platform/osx
  16 
  17 TARGET_NAME = lib$(BASE_NAME).dylib
  18 TARGET = $(BUILD_DIR)/$(TARGET_NAME)
  19 
  20 # separate library for QTKit based platform
  21 QTK_NAME = lib$(BASE_NAME)_qtkit.dylib
  22 QTK_LIB = $(BUILD_DIR)/$(QTK_NAME)
  23 
  24 AVF_NAME = lib$(BASE_NAME)_avf.dylib
  25 AVF_LIB = $(BUILD_DIR)/$(AVF_NAME)
  26 
  27 # Set up base search path for source and headers
  28 VPATH = $(SRCBASE_DIR):$(GENERATED_HEADERS_DIR):$(JAVA_HOME)/include:$(JAVA_HOME)/include/darwin
  29 
  30 # ------------------------------------------------------------------
  31 # Base compile/link flags
  32 
  33 CFLAGS += -pipe \

  34          -fPIC                     \
  35          -Werror=implicit-function-declaration \
  36          -DTARGET_OS_MAC=1         \
  37          -D_GNU_SOURCE             \
  38          -msse2

  39 
  40 ifeq ($(BUILD_TYPE), Release)
  41     CFLAGS += -Os
  42 else
  43     CFLAGS += -O0 -g -Wall
  44 endif
  45 
  46 INCLUDES = -I$(JAVA_HOME)/include \
  47            -I$(JAVA_HOME)/include/darwin \
  48            -I$(SRCBASE_DIR) \
  49            -I$(SRCBASE_DIR)/jni \
  50            -I$(GENERATED_HEADERS_DIR)
  51 
  52 # We need to ensure everything builds with libc++, so add it here
  53 LDFLAGS += -stdlib=libc++ \

  54            -L$(BUILD_DIR) \
  55           -lobjc \
  56           -framework Cocoa \
  57           -framework CoreVideo
  58 
  59 # ------------------------------------------------------------------
  60 # jfxmedia compile/link flags
  61 
  62 JFXMEDIA_CFLAGS = $(CFLAGS) \
  63          -DGST_REMOVE_DEPRECATED   \
  64          -DGST_DISABLE_GST_DEBUG   \
  65          -DGST_DISABLE_LOADSAVE    \
  66          -DGST_DISABLE_XML         \
  67          -DGSTREAMER_LITE          \
  68          -DJFXMEDIA_JNI_EXPORTS    \
  69          -DHAVE_CONFIG_H           \
  70 
  71 JFXMEDIA_CCFLAGS = -std=c++11 -stdlib=libc++ $(JFXMEDIA_CFLAGS) 
  72 
  73 JFXMEDIA_INCLUDES = $(INCLUDES) \


 164 $(OBJBASE_DIR)/%.o: %.c
 165         @mkdir -p $(dir $@)
 166         $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x c -c $< -o $@
 167 
 168 $(OBJBASE_DIR)/%.o: %.mm
 169         @mkdir -p $(dir $@)
 170         $(CC) $(JFXMEDIA_CCFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x objective-c++ -c $< -o $@
 171 
 172 $(OBJBASE_DIR)/%.o: %.m
 173         @mkdir -p $(dir $@)
 174         $(CC) $(JFXMEDIA_CFLAGS) $(JFXMEDIA_INCLUDES) -MD -MF $(OBJBASE_DIR)/$*.d -x objective-c -c $< -o $@
 175 
 176 $(TARGET): $(JFXMEDIA_OBJECTS)
 177         @mkdir -p $(dir $@)
 178         $(LINK) -dynamiclib $(JFXMEDIA_LDFLAGS) $(JFXMEDIA_OBJECTS) -o $@
 179 
 180 
 181 # ------------------------------------------------------------------
 182 # AVFoundation platform lib rules
 183 

















 184 AVF_OBJBASE = $(OBJBASE_DIR)/avf
 185 
 186 AVF_LDFLAGS = $(LDFLAGS) \










 187               -Wl,-install_name,@rpath/$(AVF_NAME) \
 188               -framework AVFoundation \
 189               -framework CoreMedia \
 190               -framework Accelerate \
 191               -framework AudioUnit \
 192               -framework MediaToolbox
 193 
 194 AVF_CFLAGS = $(CFLAGS) \




 195              -DCA_AU_USE_FAST_DISPATCH=1 \
 196              -DCA_BASIC_AU_FEATURES=1 \
 197              -DCA_NO_AU_HOST_CALLBACKS=1 \
 198              -DCA_NO_AU_UI_FEATURES=1 \
 199              -DCA_USE_AUDIO_PLUGIN_ONLY=1 \
 200              -fobjc-arc
 201 
 202 # CoreAudio Utility Classes provided by Apple
 203 COREAUDIO_UTILITY_CLASSES = \
 204         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp \
 205         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.cpp \
 206         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUOutputElement.cpp \
 207         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp \
 208         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.cpp \
 209         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.cpp \
 210         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUEffectBase.cpp \
 211         platform/osx/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUBuffer.cpp \
 212         platform/osx/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioChannelLayout.cpp \
 213         platform/osx/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CASpectralProcessor.cpp \
 214         platform/osx/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAStreamBasicDescription.cpp \


 225         platform/osx/avf/AVFAudioProcessor.mm \
 226         platform/osx/avf/AVFAudioEqualizer.cpp \
 227         platform/osx/avf/AVFAudioSpectrumUnit.cpp \
 228         platform/osx/avf/AVFSoundLevelUnit.cpp \
 229         platform/osx/avf/AVFKernelProcessor.cpp \
 230         $(COREAUDIO_UTILITY_CLASSES)
 231 
 232 
 233 AVF_OBJECTS = $(patsubst %.mm,$(AVF_OBJBASE)/%.o,$(filter %.mm, $(AVF_SOURCES))) \
 234               $(patsubst %.cpp,$(AVF_OBJBASE)/%.o,$(filter %.cpp, $(AVF_SOURCES)))
 235 
 236 AVF_INCLUDES = \
 237     $(INCLUDES) \
 238     $(COREAUDIO_INCLUDES) \
 239     -I$(OSX_PLATFORM_BASE)
 240 
 241 -include $(AVF_OBJECTS:.o=.d)
 242 
 243 $(AVF_OBJBASE)/%.o: %.cpp
 244         @mkdir -p $(dir $@)
 245         $(CC) $(AVF_CFLAGS) $(AVF_INCLUDES) -MD -MF $(AVF_OBJBASE)/$*.d -x c++ -c $< -o $@
 246 
 247 $(AVF_OBJBASE)/%.o: %.mm
 248         @mkdir -p $(dir $@)
 249         $(CC) $(AVF_CFLAGS) $(AVF_INCLUDES) -MD -MF $(AVF_OBJBASE)/$*.d -x objective-c++ -c $< -o $@
 250 
 251 $(AVF_LIB): $(TARGET) $(AVF_OBJECTS)
 252         @mkdir -p $(dir $@)
 253         $(LINK)  $(AVF_LDFLAGS) -dynamiclib $(AVF_OBJECTS) -l$(BASE_NAME) -o $@
 254 
 255 
 256 # ------------------------------------------------------------------
 257 # QTKit platform lib rules
 258 
 259 QTK_OBJBASE = $(OBJBASE_DIR)/qtk
 260 QTK_CCFLAGS = -std=c++11 -stdlib=libc++ $(CFLAGS)
 261 QTK_LDFLAGS = $(LDFLAGS) \
 262               -Wl,-install_name,@rpath/$(QTK_NAME) \
 263               -framework QTKit
 264 
 265 QTK_SOURCES = platform/osx/QTKMediaPlayer.mm
 266 QTK_OBJECTS = $(patsubst %.mm,$(QTK_OBJBASE)/%.o,$(QTK_SOURCES))
 267 
 268 -include $(QTK_OBJECTS:.o=.d)
 269 
 270 $(QTK_OBJBASE)/%.o: %.mm
 271         @mkdir -p $(dir $@)
 272         $(CC) $(QTK_CCFLAGS) $(INCLUDES) -MD -MF $(QTK_OBJBASE)/$*.d -x objective-c++ -c $< -o $@
 273 
< prev index next >