1 # 2 # Makefile for libgstreamer-lite 3 # 4 5 BUILD_DIR = $(OUTPUT_DIR)/$(BUILD_TYPE) 6 TARGET_DIRS = $(BUILD_DIR) 7 8 BASE_DIR = ../../.. 9 SRCBASE_DIR = $(BASE_DIR)/gstreamer-lite 10 OBJBASE_DIR = $(BUILD_DIR)/obj/gstreamer-lite 11 12 DIRLIST = gstreamer/gst \ 13 gstreamer/libs/gst/base \ 14 gstreamer/libs/gst/controller \ 15 gst-plugins-base/gst-libs/gst/audio \ 16 gst-plugins-base/gst-libs/gst/interfaces \ 17 gst-plugins-base/gst-libs/gst/video \ 18 gst-plugins-base/gst-libs/gst/tag \ 19 gst-plugins-base/gst-libs/gst/riff \ 20 gst-plugins-base/gst-libs/gst/app \ 21 projects/plugins \ 22 gstreamer/plugins/elements \ 23 gst-plugins-base/gst-libs/gst/fft \ 24 gst-plugins-base/gst-libs/gst/pbutils \ 25 gst-plugins-base/gst/typefind \ 26 gst-plugins-base/gst/audioconvert \ 27 gst-plugins-base/gst/volume \ 28 gst-plugins-good/gst/audioparsers \ 29 gst-plugins-good/gst/isomp4 \ 30 gst-plugins-base/ext/alsa \ 31 gst-plugins-good/gst/audiofx \ 32 gst-plugins-good/gst/equalizer \ 33 gst-plugins-good/gst/spectrum \ 34 gst-plugins-good/gst/wavparse \ 35 gst-plugins-bad/gst/aiff \ 36 gst-plugins-base/gst/app 37 38 TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so 39 40 CFLAGS =-fPIC \ 41 -Wformat \ 42 -Wextra \ 43 -Wformat-security \ 44 -fstack-protector \ 45 -Werror=implicit-function-declaration \ 46 -D_GNU_SOURCE \ 47 -DGST_REMOVE_DEPRECATED \ 48 -DGSTREAMER_LITE \ 49 -DHAVE_CONFIG_H \ 50 -DOUTSIDE_SPEEX \ 51 -DLINUX \ 52 -DGST_DISABLE_GST_DEBUG \ 53 -DGST_DISABLE_LOADSAVE \ 54 -ffunction-sections -fdata-sections 55 56 ifeq ($(BUILD_TYPE), Release) 57 CFLAGS += -Os 58 else 59 CFLAGS += -g -Wall 60 endif 61 62 INCLUDES = -I$(BASE_DIR)/plugins \ 63 -I$(SRCBASE_DIR)/projects/build/linux/common \ 64 -I$(SRCBASE_DIR)/gstreamer \ 65 -I$(SRCBASE_DIR)/gstreamer/libs \ 66 -I$(SRCBASE_DIR)/gstreamer/gst/parse \ 67 -I$(SRCBASE_DIR)/gst-plugins-base \ 68 -I$(SRCBASE_DIR)/gst-plugins-base/gst-libs \ 69 -I$(SRCBASE_DIR)/projects/plugins \ 70 -I$(SRCBASE_DIR)/gst-plugins-base/gst-libs \ 71 -I$(SRCBASE_DIR)/gst-plugins-good/gst-libs \ 72 -I$(SRCBASE_DIR)/gst-plugins-good/gst/isomp4 \ 73 -I$(SRCBASE_DIR)/gst-plugins-bad/gst-libs 74 75 PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa glib-2.0) 76 PACKAGES_LIBS := $(shell pkg-config --libs alsa glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0) 77 78 LDFLAGS = -L$(BUILD_DIR) -lm $(PACKAGES_LIBS) \ 79 -z relro \ 80 -static-libgcc -static-libstdc++ -Wl,--gc-sections 81 82 ifeq ($(ARCH), x32) 83 CFLAGS += -m32 84 LDFLAGS += -m32 85 endif 86 87 SOURCES = \ 88 gstreamer/gst/gst.c \ 89 gstreamer/gst/gstallocator.c \ 90 gstreamer/gst/gstatomicqueue.c \ 91 gstreamer/gst/gstbin.c \ 92 gstreamer/gst/gstbuffer.c \ 93 gstreamer/gst/gstbufferlist.c \ 94 gstreamer/gst/gstbufferpool.c \ 95 gstreamer/gst/gstbus.c \ 96 gstreamer/gst/gstcaps.c \ 97 gstreamer/gst/gstcapsfeatures.c \ 98 gstreamer/gst/gstchildproxy.c \ 99 gstreamer/gst/gstclock.c \ 100 gstreamer/gst/gstcontext.c \ 101 gstreamer/gst/gstcontrolbinding.c \ 102 gstreamer/gst/gstcontrolsource.c \ 103 gstreamer/gst/gstdatetime.c \ 104 gstreamer/gst/gstdebugutils.c \ 105 gstreamer/gst/gstdynamictypefactory.c \ 106 gstreamer/gst/gstelement.c \ 107 gstreamer/gst/gstelementfactory.c \ 108 gstreamer/gst/gstenumtypes.c \ 109 gstreamer/gst/gsterror.c \ 110 gstreamer/gst/gstevent.c \ 111 gstreamer/gst/gstformat.c \ 112 gstreamer/gst/gstghostpad.c \ 113 gstreamer/gst/gstinfo.c \ 114 gstreamer/gst/gstiterator.c \ 115 gstreamer/gst/gstmemory.c \ 116 gstreamer/gst/gstmessage.c \ 117 gstreamer/gst/gstmeta.c \ 118 gstreamer/gst/gstminiobject.c \ 119 gstreamer/gst/gstobject.c \ 120 gstreamer/gst/gstpad.c \ 121 gstreamer/gst/gstpadtemplate.c \ 122 gstreamer/gst/gstparamspecs.c \ 123 gstreamer/gst/gstparse.c \ 124 gstreamer/gst/gstpipeline.c \ 125 gstreamer/gst/gstplugin.c \ 126 gstreamer/gst/gstpluginfeature.c \ 127 gstreamer/gst/gstpluginloader.c \ 128 gstreamer/gst/gstpoll.c \ 129 gstreamer/gst/gstpreset.c \ 130 gstreamer/gst/gstprotection.c \ 131 gstreamer/gst/gstquark.c \ 132 gstreamer/gst/gstquery.c \ 133 gstreamer/gst/gstregistry.c \ 134 gstreamer/gst/gstregistrybinary.c \ 135 gstreamer/gst/gstregistrychunks.c \ 136 gstreamer/gst/gstsample.c \ 137 gstreamer/gst/gstsegment.c \ 138 gstreamer/gst/gststructure.c \ 139 gstreamer/gst/gstsystemclock.c \ 140 gstreamer/gst/gststreamcollection.c \ 141 gstreamer/gst/gststreams.c \ 142 gstreamer/gst/gsttaglist.c \ 143 gstreamer/gst/gsttagsetter.c \ 144 gstreamer/gst/gsttask.c \ 145 gstreamer/gst/gsttaskpool.c \ 146 gstreamer/gst/gsttoc.c \ 147 gstreamer/gst/gsttocsetter.c \ 148 gstreamer/gst/gsttracer.c \ 149 gstreamer/gst/gsttracerfactory.c \ 150 gstreamer/gst/gsttracerrecord.c \ 151 gstreamer/gst/gsttracerutils.c \ 152 gstreamer/gst/gsttypefind.c \ 153 gstreamer/gst/gsttypefindfactory.c \ 154 gstreamer/gst/gsturi.c \ 155 gstreamer/gst/gstutils.c \ 156 gstreamer/gst/gstvalue.c \ 157 gstreamer/libs/gst/base/gstadapter.c \ 158 gstreamer/libs/gst/base/gstbaseparse.c \ 159 gstreamer/libs/gst/base/gstbasesink.c \ 160 gstreamer/libs/gst/base/gstbasesrc.c \ 161 gstreamer/libs/gst/base/gstbasetransform.c \ 162 gstreamer/libs/gst/base/gstbitreader.c \ 163 gstreamer/libs/gst/base/gstbytereader.c \ 164 gstreamer/libs/gst/base/gstbytewriter.c \ 165 gstreamer/libs/gst/base/gstcollectpads.c \ 166 gstreamer/libs/gst/base/gstdataqueue.c \ 167 gstreamer/libs/gst/base/gstflowcombiner.c \ 168 gstreamer/libs/gst/base/gstpushsrc.c \ 169 gstreamer/libs/gst/base/gstqueuearray.c \ 170 gstreamer/libs/gst/base/gsttypefindhelper.c \ 171 gst-plugins-base/gst-libs/gst/app/gstapp-marshal.c \ 172 gst-plugins-base/gst-libs/gst/app/gstappsink.c \ 173 gst-plugins-base/gst-libs/gst/audio/audio.c \ 174 gst-plugins-base/gst-libs/gst/audio/audio-channels.c \ 175 gst-plugins-base/gst-libs/gst/audio/audio-channel-mixer.c \ 176 gst-plugins-base/gst-libs/gst/audio/audio-converter.c \ 177 gst-plugins-base/gst-libs/gst/audio/audio-resampler.c \ 178 gst-plugins-base/gst-libs/gst/audio/audio-enumtypes.c \ 179 gst-plugins-base/gst-libs/gst/audio/audio-quantize.c \ 180 gst-plugins-base/gst-libs/gst/audio/audio-format.c \ 181 gst-plugins-base/gst-libs/gst/audio/audio-info.c \ 182 gst-plugins-base/gst-libs/gst/audio/gstaudiobasesink.c \ 183 gst-plugins-base/gst-libs/gst/audio/gstaudiobasesrc.c \ 184 gst-plugins-base/gst-libs/gst/audio/gstaudioclock.c \ 185 gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c \ 186 gst-plugins-base/gst-libs/gst/audio/gstaudioencoder.c \ 187 gst-plugins-base/gst-libs/gst/audio/gstaudiofilter.c \ 188 gst-plugins-base/gst-libs/gst/audio/gstaudioiec61937.c \ 189 gst-plugins-base/gst-libs/gst/audio/gstaudiometa.c \ 190 gst-plugins-base/gst-libs/gst/audio/gstaudiopack-dist.c \ 191 gst-plugins-base/gst-libs/gst/audio/gstaudioringbuffer.c \ 192 gst-plugins-base/gst-libs/gst/audio/gstaudiosink.c \ 193 gst-plugins-base/gst-libs/gst/audio/gstaudiosrc.c \ 194 gst-plugins-base/gst-libs/gst/audio/gstaudioutilsprivate.c \ 195 gst-plugins-base/gst-libs/gst/audio/streamvolume.c \ 196 gst-plugins-base/gst-libs/gst/fft/gstfft.c \ 197 gst-plugins-base/gst-libs/gst/fft/gstfftf32.c \ 198 gst-plugins-base/gst-libs/gst/fft/kiss_fft_f32.c \ 199 gst-plugins-base/gst-libs/gst/fft/kiss_fftr_f32.c \ 200 gst-plugins-base/gst-libs/gst/pbutils/codec-utils.c \ 201 gst-plugins-base/gst-libs/gst/pbutils/descriptions.c \ 202 gst-plugins-base/gst-libs/gst/pbutils/encoding-profile.c \ 203 gst-plugins-base/gst-libs/gst/pbutils/encoding-target.c \ 204 gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer.c \ 205 gst-plugins-base/gst-libs/gst/pbutils/gstdiscoverer-types.c \ 206 gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.c \ 207 gst-plugins-base/gst-libs/gst/pbutils/missing-plugins.c \ 208 gst-plugins-base/gst-libs/gst/pbutils/pbutils.c \ 209 gst-plugins-base/gst-libs/gst/pbutils/pbutils-enumtypes.c \ 210 gst-plugins-base/gst-libs/gst/riff/riff-media.c \ 211 gst-plugins-base/gst-libs/gst/riff/riff-read.c \ 212 gst-plugins-base/gst-libs/gst/riff/riff.c \ 213 gst-plugins-base/gst-libs/gst/tag/gstid3tag.c \ 214 gst-plugins-base/gst-libs/gst/tag/gsttagdemux.c \ 215 gst-plugins-base/gst-libs/gst/tag/id3v2.c \ 216 gst-plugins-base/gst-libs/gst/tag/id3v2frames.c \ 217 gst-plugins-base/gst-libs/gst/tag/lang.c \ 218 gst-plugins-base/gst-libs/gst/tag/tags.c \ 219 gst-plugins-base/gst-libs/gst/tag/tag-enumtypes.c \ 220 gst-plugins-base/gst-libs/gst/video/video.c \ 221 gst-plugins-base/gst-libs/gst/video/video-chroma.c \ 222 gst-plugins-base/gst-libs/gst/video/video-color.c \ 223 gst-plugins-base/gst-libs/gst/video/video-converter.c \ 224 gst-plugins-base/gst-libs/gst/video/video-format.c \ 225 gst-plugins-base/gst-libs/gst/video/video-enumtypes.c \ 226 gst-plugins-base/gst-libs/gst/video/video-info.c \ 227 gst-plugins-base/gst-libs/gst/video/video-multiview.c \ 228 gst-plugins-base/gst-libs/gst/video/video-orc-dist.c \ 229 gst-plugins-base/gst-libs/gst/video/video-tile.c \ 230 gst-plugins-good/gst/audiofx/audiofx.c \ 231 gst-plugins-good/gst/audiofx/audiopanorama.c \ 232 gst-plugins-good/gst/audiofx/audiopanoramaorc.c \ 233 gst-plugins-base/gst/audioconvert/plugin.c \ 234 gst-plugins-base/gst/audioconvert/gstaudioconvert.c \ 235 gst-plugins-bad/gst/aiff/aiff.c \ 236 gst-plugins-bad/gst/aiff/aiffparse.c \ 237 gst-plugins-base/gst/app/gstapp.c \ 238 gst-plugins-base/gst/typefind/gsttypefindfunctions.c \ 239 gst-plugins-good/gst/audioparsers/gstmpegaudioparse.c \ 240 gst-plugins-good/gst/audioparsers/parsersplugin.c \ 241 gst-plugins-good/gst/equalizer/gstiirequalizer.c \ 242 gst-plugins-good/gst/equalizer/gstiirequalizernbands.c \ 243 gst-plugins-good/gst/isomp4/isomp4-plugin.c \ 244 gst-plugins-good/gst/isomp4/qtdemux.c \ 245 gst-plugins-good/gst/isomp4/gstisoff.c \ 246 gst-plugins-good/gst/isomp4/qtdemux_dump.c \ 247 gst-plugins-good/gst/isomp4/qtdemux_lang.c \ 248 gst-plugins-good/gst/isomp4/qtdemux_types.c \ 249 gst-plugins-good/gst/spectrum/gstspectrum.c \ 250 gst-plugins-good/gst/wavparse/gstwavparse.c \ 251 gstreamer/plugins/elements/gstelements.c \ 252 gstreamer/plugins/elements/gstqueue.c \ 253 gstreamer/plugins/elements/gsttypefindelement.c \ 254 gst-plugins-base/gst/volume/gstvolume.c \ 255 gst-plugins-base/gst/volume/gstvolumeorc-dist.c \ 256 gst-plugins-base/ext/alsa/gstalsaplugin.c \ 257 gst-plugins-base/ext/alsa/gstalsa.c \ 258 gst-plugins-base/ext/alsa/gstalsadeviceprobe.c \ 259 gst-plugins-base/ext/alsa/gstalsasink.c \ 260 projects/plugins/gstplugins-lite.c 261 262 OBJ_DIRS = $(addprefix $(OBJBASE_DIR)/,$(DIRLIST)) 263 OBJECTS = $(patsubst %.c,$(OBJBASE_DIR)/%.o,$(SOURCES)) 264 265 .PHONY: default list 266 267 default: $(TARGET) 268 269 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.c 270 $(CC) $(CFLAGS) $(INCLUDES) $(PACKAGES_INCLUDES) -c $< -o $@ 271 272 $(OBJECTS): | $(OBJ_DIRS) $(TARGET_DIRS) 273 274 $(OBJ_DIRS): 275 mkdir -p $(OBJ_DIRS) 276 277 $(TARGET_DIRS): 278 mkdir -p $(TARGET_DIRS) 279 280 $(TARGET): $(OBJECTS) 281 $(LINKER) -shared $(OBJECTS) $(LDFLAGS) -o $@