1 #
   2 # MacOs gstreamer-lite Makefile
   3 #
   4 
   5 BUILD_DIR = $(OUTPUT_DIR)/$(BUILD_TYPE)
   6 TARGET_DIRS = $(BUILD_DIR)
   7 
   8 BASE_DIR = ../../..
   9 
  10 GLIB_VERSION = 2.28.8
  11 GLIB_DIR = $(BASE_DIR)/3rd_party/glib/glib-$(GLIB_VERSION)
  12 
  13 SRCBASE_DIR = $(BASE_DIR)/gstreamer-lite
  14 OBJBASE_DIR = $(BUILD_DIR)/obj/gstreamer-lite
  15 
  16 DIRLIST = gstreamer/gst                     \
  17           gstreamer/libs/gst/base \
  18           gstreamer/libs/gst/controller \
  19           gst-plugins-base/gst-libs/gst/audio \
  20           gst-plugins-base/gst-libs/gst/interfaces \
  21           gst-plugins-base/gst-libs/gst/video \
  22           gst-plugins-base/gst-libs/gst/pbutils \
  23           gst-plugins-base/gst-libs/gst/tag \
  24           gst-plugins-base/gst-libs/gst/riff \
  25           gst-plugins-base/gst-libs/gst/fft \
  26           gst-plugins-base/gst-libs/gst/app \
  27           projects/plugins                  \
  28           gstreamer/plugins/elements \
  29           gst-plugins-base/gst/typefind \
  30           gst-plugins-base/gst/audioconvert \
  31           gst-plugins-good/gst/audioparsers \
  32           gst-plugins-good/gst/isomp4 \
  33           gst-plugins-good/gst/audiofx \
  34           gst-plugins-good/gst/equalizer \
  35           gst-plugins-good/gst/spectrum \
  36           gst-plugins-good/gst/wavparse \
  37           gst-plugins-bad/gst/aiff \
  38           gst-plugins-base/gst/app \
  39           gst-plugins-good/sys/osxaudio
  40 
  41 TARGET_NAME = lib$(BASE_NAME).dylib
  42 TARGET = $(BUILD_DIR)/$(TARGET_NAME)
  43 
  44 CFLAGS = -arch x86_64 \
  45          -fPIC \
  46          -Werror=implicit-function-declaration \
  47          -D_GNU_SOURCE \
  48          -DGST_REMOVE_DEPRECATED \
  49          -DGST_DISABLE_GST_DEBUG \
  50          -DGST_DISABLE_LOADSAVE \
  51          -DG_DISABLE_DEPRECATED \
  52          -DG_DISABLE_ASSERT \
  53          -DHAVE_CONFIG_H \
  54          -DGSTREAMER_LITE \
  55          -DGST_REMOVE_DISABLED \
  56          -DOSX \
  57          -msse2 \
  58          -mmacosx-version-min=10.7
  59 
  60 ifeq ($(BUILD_TYPE), Release)
  61     CFLAGS += -Os
  62 else
  63     CFLAGS += -O0 -g -Wall
  64 endif
  65 
  66 INCLUDES = $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \
  67            -I$(BASE_DIR)/plugins/ \
  68            -I$(SRCBASE_DIR)/projects/plugins \
  69            -I$(SRCBASE_DIR)/gstreamer \
  70            -I$(SRCBASE_DIR)/gstreamer/libs \
  71            -I$(SRCBASE_DIR)/gst-plugins-base \
  72            -I$(SRCBASE_DIR)/gst-plugins-base/gst-libs \
  73            -I$(GLIB_DIR) \
  74            -I$(GLIB_DIR)/glib \
  75            -I$(GLIB_DIR)/gmodule \
  76            -I$(GLIB_DIR)/build/osx
  77 
  78 LDFLAGS = -mmacosx-version-min=10.7 -arch x86_64 \
  79           -L$(BUILD_DIR) -Wl,-install_name,@rpath/$(TARGET_NAME) -lglib-lite \
  80           -framework CoreAudio -framework AudioUnit -framework CoreServices
  81 
  82 C_SOURCES = gstreamer/libs/gst/base/gstbytereader.c \
  83             gstreamer/gst/gst.c                                                \
  84             gstreamer/gst/gstbin.c                                             \
  85             gstreamer/gst/gstbuffer.c                                          \
  86             gstreamer/gst/gstbufferlist.c                                      \
  87             gstreamer/gst/gstbus.c                                             \
  88             gstreamer/gst/gstcaps.c                                            \
  89             gstreamer/gst/gstchildproxy.c                                      \
  90             gstreamer/gst/gstclock.c                                           \
  91             gstreamer/gst/gstdebugutils.c                                      \
  92             gstreamer/gst/gstelement.c                                         \
  93             gstreamer/gst/gstelementfactory.c                                  \
  94             gstreamer/gst/gsterror.c                                           \
  95             gstreamer/gst/gstevent.c                                           \
  96             gstreamer/gst/gstfilter.c                                          \
  97             gstreamer/gst/gstformat.c                                          \
  98             gstreamer/gst/gstghostpad.c                                        \
  99             gstreamer/gst/gstindex.c                                           \
 100             gstreamer/gst/gstindexfactory.c                                    \
 101             gstreamer/gst/gstinfo.c                                            \
 102             gstreamer/gst/gstinterface.c                                       \
 103             gstreamer/gst/gstiterator.c                                        \
 104             gstreamer/gst/gstmessage.c                                         \
 105             gstreamer/gst/gstminiobject.c                                      \
 106             gstreamer/gst/gstobject.c                                          \
 107             gstreamer/gst/gstpad.c                                             \
 108             gstreamer/gst/gstpadtemplate.c                                     \
 109             gstreamer/gst/gstparamspecs.c                                      \
 110             gstreamer/gst/gstpipeline.c                                        \
 111             gstreamer/gst/gstplugin.c                                          \
 112             gstreamer/gst/gstpluginfeature.c                                   \
 113             gstreamer/gst/gstpoll.c                                            \
 114             gstreamer/gst/gstpreset.c                                          \
 115             gstreamer/gst/gstquark.c                                           \
 116             gstreamer/gst/gstquery.c                                           \
 117             gstreamer/gst/gstregistry.c                                        \
 118             gstreamer/gst/gstregistrybinary.c                                  \
 119             gstreamer/gst/gstsegment.c                                         \
 120             gstreamer/gst/gststructure.c                                       \
 121             gstreamer/gst/gstsystemclock.c                                     \
 122             gstreamer/gst/gsttaglist.c                                         \
 123             gstreamer/gst/gsttagsetter.c                                       \
 124             gstreamer/gst/gsttask.c                                            \
 125             gstreamer/gst/gsttaskpool.c                                        \
 126             gstreamer/gst/gsttrace.c                                           \
 127             gstreamer/gst/gsttypefind.c                                        \
 128             gstreamer/gst/gsttypefindfactory.c                                 \
 129             gstreamer/gst/gsturi.c                                             \
 130             gstreamer/gst/gstutils.c                                           \
 131             gstreamer/gst/gstvalue.c                                           \
 132             gstreamer/libs/gst/base/gstadapter.c                               \
 133             gstreamer/libs/gst/base/gstbasesink.c                              \
 134             gstreamer/libs/gst/base/gstbasesrc.c                               \
 135             gstreamer/libs/gst/base/gstbasetransform.c                         \
 136             gstreamer/libs/gst/base/gstcollectpads.c                           \
 137             gstreamer/libs/gst/base/gstpushsrc.c                               \
 138             gstreamer/libs/gst/base/gsttypefindhelper.c                        \
 139             gstreamer/libs/gst/controller/gstcontroller.c                      \
 140             gstreamer/libs/gst/controller/gstcontrolsource.c                   \
 141             gstreamer/libs/gst/controller/gsthelper.c                          \
 142             gstreamer/libs/gst/controller/gstinterpolation.c                   \
 143             gstreamer/libs/gst/controller/gstinterpolationcontrolsource.c      \
 144             gstreamer/libs/gst/controller/gstlfocontrolsource.c                \
 145             gstreamer/libs/gst/controller/lib.c                                \
 146             gst-plugins-base/gst-libs/gst/audio/audio-enumtypes.c              \
 147             gst-plugins-base/gst-libs/gst/audio/audio.c                        \
 148             gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c                \
 149             gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.c               \
 150             gst-plugins-base/gst-libs/gst/audio/gstaudiosink.c                 \
 151             gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.c                  \
 152             gst-plugins-base/gst-libs/gst/audio/gstbaseaudiosink.c             \
 153             gst-plugins-base/gst-libs/gst/audio/gstbaseaudiosrc.c              \
 154             gst-plugins-base/gst-libs/gst/audio/gstringbuffer.c                \
 155             gst-plugins-base/gst-libs/gst/audio/mixerutils.c                   \
 156             gst-plugins-base/gst-libs/gst/audio/multichannel.c                 \
 157             gst-plugins-base/gst-libs/gst/interfaces/interfaces-enumtypes.c    \
 158             gst-plugins-base/gst-libs/gst/interfaces/interfaces-marshal.c      \
 159             gst-plugins-base/gst-libs/gst/interfaces/mixer.c                   \
 160             gst-plugins-base/gst-libs/gst/interfaces/mixeroptions.c            \
 161             gst-plugins-base/gst-libs/gst/interfaces/mixertrack.c              \
 162             gst-plugins-base/gst-libs/gst/interfaces/navigation.c              \
 163             gst-plugins-base/gst-libs/gst/interfaces/propertyprobe.c           \
 164             gst-plugins-base/gst-libs/gst/interfaces/videoorientation.c        \
 165             gst-plugins-base/gst-libs/gst/interfaces/xoverlay.c                \
 166             gst-plugins-base/gst-libs/gst/video/gstvideofilter.c               \
 167             gst-plugins-base/gst-libs/gst/video/gstvideosink.c                 \
 168             gst-plugins-base/gst-libs/gst/video/video-enumtypes.c              \
 169             gst-plugins-base/gst-libs/gst/video/video.c                        \
 170             gst-plugins-base/gst-libs/gst/pbutils/descriptions.c               \
 171             gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c            \
 172             gst-plugins-base/gst-libs/gst/pbutils/pbutils-enumtypes.c          \
 173             gst-plugins-base/gst-libs/gst/pbutils/pbutils.c                    \
 174             gst-plugins-base/gst-libs/gst/tag/gstid3tag.c                      \
 175             gst-plugins-base/gst-libs/gst/tag/gsttagdemux.c                    \
 176             gst-plugins-base/gst-libs/gst/tag/gstvorbistag.c                   \
 177             gst-plugins-base/gst-libs/gst/tag/tags.c                           \
 178             gst-plugins-base/gst-libs/gst/riff/riff-media.c                    \
 179             gst-plugins-base/gst-libs/gst/riff/riff-read.c                     \
 180             gst-plugins-base/gst-libs/gst/riff/riff.c                          \
 181             gst-plugins-base/gst-libs/gst/app/gstappbuffer.c                   \
 182             gst-plugins-base/gst-libs/gst/app/gstappsink.c                     \
 183             gst-plugins-base/gst-libs/gst/fft/gstfft.c                         \
 184             gst-plugins-base/gst-libs/gst/fft/gstfftf32.c                      \
 185             gst-plugins-base/gst-libs/gst/fft/gstfftf64.c                      \
 186             gst-plugins-base/gst-libs/gst/fft/gstffts16.c                      \
 187             gst-plugins-base/gst-libs/gst/fft/gstffts32.c                      \
 188             gst-plugins-base/gst-libs/gst/fft/kiss_fft_f32.c                   \
 189             gst-plugins-base/gst-libs/gst/fft/kiss_fft_f64.c                   \
 190             gst-plugins-base/gst-libs/gst/fft/kiss_fft_s16.c                   \
 191             gst-plugins-base/gst-libs/gst/fft/kiss_fft_s32.c                   \
 192             gst-plugins-base/gst-libs/gst/fft/kiss_fftr_f32.c                  \
 193             gst-plugins-base/gst-libs/gst/fft/kiss_fftr_f64.c                  \
 194             gst-plugins-base/gst-libs/gst/fft/kiss_fftr_s16.c                  \
 195             gst-plugins-base/gst-libs/gst/fft/kiss_fftr_s32.c                  \
 196             gstreamer/libs/gst/base/gstbaseparse.c                             \
 197             gstreamer/gst/gstdatetime.c                                        \
 198             gstreamer/gst/gstenumtypes.c                                       \
 199             gstreamer/gst/gstmarshal.c                                         \
 200             gstreamer/gst/gstparse.c                                           \
 201             gstreamer/gst/gstpluginloader.c                                    \
 202             gstreamer/gst/gstregistrychunks.c                                  \
 203             gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c                \
 204             gst-plugins-base/gst-libs/gst/tag/gstxmptag.c                      \
 205             gstreamer/libs/gst/base/gstbytewriter.c                            \
 206             gst-plugins-base/gst-libs/gst/tag/lang.c                           \
 207             gst-plugins-base/gst-libs/gst/tag/gsttageditingprivate.c           \
 208             gstreamer/plugins/elements/gstcapsfilter.c \
 209             gstreamer/plugins/elements/gstelements.c                           \
 210             gstreamer/plugins/elements/gstfilesrc.c                            \
 211             gstreamer/plugins/elements/gstqueue.c                              \
 212             gstreamer/plugins/elements/gsttypefindelement.c                    \
 213             gst-plugins-base/gst/typefind/gsttypefindfunctions.c               \
 214             gst-plugins-base/gst/audioconvert/audioconvert.c                   \
 215             gst-plugins-base/gst/audioconvert/gstaudioconvert.c                \
 216             gst-plugins-base/gst/audioconvert/gstaudioquantize.c               \
 217             gst-plugins-base/gst/audioconvert/gstchannelmix.c                  \
 218             gst-plugins-base/gst/audioconvert/plugin.c                         \
 219             gst-plugins-good/sys/osxaudio/gstosxaudio.c                        \
 220             gst-plugins-good/sys/osxaudio/gstosxaudioelement.c                 \
 221             gst-plugins-good/sys/osxaudio/gstosxaudiosink.c                    \
 222             gst-plugins-good/sys/osxaudio/gstosxringbuffer.c                   \
 223             gst-plugins-good/gst/audiofx/audiofx.c                             \
 224             gst-plugins-good/gst/audiofx/audiopanorama.c                       \
 225             gst-plugins-good/gst/equalizer/gstiirequalizer.c                   \
 226             gst-plugins-good/gst/equalizer/gstiirequalizernbands.c             \
 227             gst-plugins-good/gst/wavparse/gstwavparse.c                        \
 228             projects/plugins/gstplugins-lite.c                                 \
 229             gst-plugins-base/gst/app/gstapp.c                                  \
 230             gst-plugins-good/sys/osxaudio/gstosxaudiosrc.c                     \
 231             gst-plugins-good/gst/spectrum/gstspectrum.c                        \
 232             gst-plugins-good/gst/audioparsers/parsersplugin.c                  \
 233             gst-plugins-good/gst/audioparsers/gstmpegaudioparse.c              \
 234             gst-plugins-good/gst/isomp4/qtdemux_lang.c                         \
 235             gst-plugins-good/gst/isomp4/isomp4-plugin.c                        \
 236             gst-plugins-good/gst/isomp4/qtdemux_dump.c                         \
 237             gst-plugins-good/gst/isomp4/qtdemux_types.c                        \
 238             gst-plugins-good/gst/isomp4/qtdemux.c                              \
 239             gst-plugins-bad/gst/aiff/aiff.c                                    \
 240             gst-plugins-bad/gst/aiff/aiffparse.c                               \
 241             gst-plugins-base/gst/audioconvert/gstaudioconvertorc-dist.c
 242 
 243 OBJ_DIRS = $(addprefix $(OBJBASE_DIR)/,$(DIRLIST))
 244 OBJECTS  = $(patsubst %.c,$(OBJBASE_DIR)/%.o,$(C_SOURCES))
 245 
 246 .PHONY: default list
 247 
 248 default: $(TARGET)
 249 
 250 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.c
 251         $(CC) $(CFLAGS) -I$(SRCBASE_DIR)/projects/build/osx/common/x86_64 $(INCLUDES) -c $< -o $@
 252 
 253 $(OBJECTS): | $(OBJ_DIRS) $(TARGET_DIRS)
 254 
 255 $(OBJ_DIRS):
 256         mkdir -p $(OBJ_DIRS)
 257 
 258 $(TARGET_DIRS):
 259         mkdir -p $(TARGET_DIRS)
 260 
 261 $(TARGET): $(OBJECTS)
 262         $(CC) -dynamiclib $(OBJECTS) $(LDFLAGS) -o $@