1 #
   2 # Makefile for Linux only avplugin
   3 #
   4 
   5 BUILD_DIR = $(OUTPUT_DIR)/$(BUILD_TYPE)
   6 TARGET_DIRS = $(BUILD_DIR)
   7 
   8 SRCBASE_DIR = ../../../plugins
   9 
  10 DIRLIST = av
  11 
  12 ifneq ($(strip $(VERSION)),)
  13 TARGET = $(BUILD_DIR)/lib$(BASE_NAME)$(SUFFIX)-$(VERSION).so
  14 OBJBASE_DIR = $(BUILD_DIR)/obj/plugins/$(BASE_NAME)$(SUFFIX)-$(VERSION)
  15 else
  16 TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so
  17 OBJBASE_DIR = $(BUILD_DIR)/obj/plugins/avplugin
  18 endif
  19 
  20 CFLAGS = -fPIC                   \
  21          -Wformat                \
  22          -Wextra                 \
  23          -Wformat-security       \
  24          -Werror=implicit-function-declaration \
  25          -msse2                  \
  26          -fbuiltin               \
  27          -DHAVE_STDINT_H         \
  28          -DLINUX                 \
  29          -DGST_DISABLE_LOADSAVE  \
  30          -DGSTREAMER_LITE \
  31          -ffunction-sections -fdata-sections
  32 
  33 ifeq ($(BUILD_TYPE), Release)
  34     CFLAGS += -Os
  35 else
  36     CFLAGS += -g -Wall
  37 endif
  38 
  39 PACKAGES_INCLUDES := $(shell pkg-config --cflags glib-2.0)
  40 PACKAGES_LIBS     := $(shell pkg-config --libs glib-2.0 gobject-2.0)
  41 
  42 INCLUDES= -I../../../plugins                          \
  43           -I../../../plugins/av                       \
  44           -I../../../gstreamer-lite/gstreamer         \
  45           -I../../../gstreamer-lite/gstreamer/libs    \
  46           $(PACKAGES_INCLUDES)
  47 
  48 LDFLAGS = -L$(BUILD_DIR)    \
  49           -lgstreamer-lite  \
  50            $(PACKAGES_LIBS) \
  51           -static-libgcc -static-libstdc++ -Wl,--gc-sections
  52 
  53 ifneq ($(strip $(LIBAV_DIR)),)
  54 INCLUDES += -I$(LIBAV_DIR)/include
  55 LDFLAGS  += -L$(LIBAV_DIR)/lib/ -lavcodec -lavformat
  56 else
  57 INCLUDES += $(shell pkg-config --cflags libavcodec libavformat)
  58 LDFLAGS  += $(shell pkg-config --libs libavcodec libavformat)
  59 endif
  60 
  61 ifeq ($(ARCH), x32)
  62     CFLAGS += -m32
  63     LDFLAGS += -m32
  64 endif
  65 
  66 SOURCES = av/fxavcodecplugin.c  \
  67           av/avelement.c        \
  68           av/decoder.c          \
  69           av/audiodecoder.c     \
  70           av/videodecoder.c     \
  71           av/mpegtsdemuxer.c
  72 
  73 OBJ_DIRS = $(addprefix $(OBJBASE_DIR)/,$(DIRLIST))
  74 OBJECTS = $(patsubst %.c,$(OBJBASE_DIR)/%.o,$(SOURCES))
  75 
  76 .PHONY: default
  77 
  78 default: $(TARGET)
  79 
  80 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.c
  81         $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
  82 
  83 $(OBJECTS): | $(OBJ_DIRS) $(TARGET_DIRS)
  84 
  85 $(OBJ_DIRS):
  86         mkdir -p $(OBJ_DIRS)
  87 
  88 $(TARGET_DIRS):
  89         mkdir -p $(TARGET_DIRS)
  90 
  91 $(TARGET): $(OBJECTS)
  92         $(LINKER) -shared $(OBJECTS) $(LDFLAGS) -o $@