]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
build: updated the Makefiles to make use of new static lib helpers
authorAdam Sutton <dev@adamsutton.me.uk>
Thu, 14 Jan 2016 16:32:21 +0000 (16:32 +0000)
committerAdam Sutton <dev@adamsutton.me.uk>
Sat, 16 Jan 2016 23:28:12 +0000 (23:28 +0000)
Makefile
Makefile.ffmpeg
Makefile.hdhomerun

index 36596545af21aac99c8c46d1ffa8d0299701409b..1ebe2bb64340c77dd4d50ace2666a866913285ec 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -61,8 +61,8 @@ endif
 
 ifeq ($(CONFIG_LIBFFMPEG_STATIC),yes)
 
-CFLAGS  += -I${ROOTDIR}/libav_static/build/ffmpeg/include
-LDFLAGS_FFDIR = ${ROOTDIR}/libav_static/build/ffmpeg/lib
+CFLAGS  += -I${BUILDDIR}/ffmpeg/build/ffmpeg/include
+LDFLAGS_FFDIR = ${BUILDDIR}/ffmpeg/build/ffmpeg/lib
 LDFLAGS += ${LDFLAGS_FFDIR}/libavresample.a
 LDFLAGS += ${LDFLAGS_FFDIR}/libswresample.a
 LDFLAGS += ${LDFLAGS_FFDIR}/libavfilter.a
@@ -112,9 +112,9 @@ endif
 endif # CONFIG_LIBFFMPEG_STATIC
 
 ifeq ($(CONFIG_HDHOMERUN_STATIC),yes)
-CFLAGS  += -I${ROOTDIR}/libhdhomerun_static
-LDFLAGS += -L${ROOTDIR}/libhdhomerun_static/libhdhomerun \
-           -Wl,-Bstatic -lhdhomerun -Wl,-Bdynamic
+CFLAGS  += -I$(BUILDDIR)/hdhomerun
+LDFLAGS += $(BUILDDIR)/hdhomerun/libhdhomerun/libhdhomerun.a \
+           -Wl,-Bstatic -Wl,-Bdynamic
 endif
 
 vpath %.c $(ROOTDIR)
@@ -587,8 +587,6 @@ clean:
 # Distclean
 .PHONY: distclean
 distclean: clean
-       rm -rf ${ROOTDIR}/libav_static
-       rm -rf ${ROOTDIR}/libhdhomerun_static
        rm -rf ${ROOTDIR}/build.*
        rm -rf ${ROOTDIR}/data/dvb-scan
        rm -f ${ROOTDIR}/.config.mk
@@ -684,11 +682,11 @@ ifeq ($(CONFIG_LIBFFMPEG_STATIC),yes)
 src/libav.h ${SRCS-LIBAV} ${DEPS-LIBAV}: ${BUILDDIR}/libffmpeg_stamp
 endif
 
-${BUILDDIR}/libffmpeg_stamp: ${ROOTDIR}/libav_static/build/ffmpeg/lib/libavcodec.a
+${BUILDDIR}/libffmpeg_stamp: ${BUILDDIR}/ffmpeg/build/ffmpeg/lib/libavcodec.a
        @touch $@
 
-${ROOTDIR}/libav_static/build/ffmpeg/lib/libavcodec.a: Makefile.ffmpeg
-       $(MAKE) -f Makefile.ffmpeg build
+${BUILDDIR}/ffmpeg/build/ffmpeg/lib/libavcodec.a: Makefile.ffmpeg
+       $(MAKE) -f Makefile.ffmpeg
 
 # Static HDHOMERUN library
 
@@ -696,11 +694,11 @@ ifeq ($(CONFIG_LIBHDHOMERUN_STATIC),yes)
 src/input/mpegts/tvhdhomerun/tvhdhomerun_private.h ${SRCS-HDHOMERUN}: ${BUILDDIR}/libhdhomerun_stamp
 endif
 
-${BUILDDIR}/libhdhomerun_stamp: ${ROOTDIR}/libhdhomerun_static/libhdhomerun/libhdhomerun.a
+${BUILDDIR}/libhdhomerun_stamp: ${BUILDDIR}/hdhomerun/libhdhomerun/libhdhomerun.a
        @touch $@
 
-${ROOTDIR}/libhdhomerun_static/libhdhomerun/libhdhomerun.a: Makefile.hdhomerun
-       $(MAKE) -f Makefile.hdhomerun build
+${BUILDDIR}/hdhomerun/libhdhomerun/libhdhomerun.a: Makefile.hdhomerun
+       $(MAKE) -f Makefile.hdhomerun
 
 # linuxdvb git tree
 $(ROOTDIR)/data/dvb-scan/.stamp:
index bfcea2c1f15f58ab5b790058e134ecc477d9ecdd..43d8dccf627a8525d2c6211ad9e30e53d24ea87c 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-include $(dir $(lastword $(MAKEFILE_LIST))).config.mk
+DIR :=  $(dir $(lastword $(MAKEFILE_LIST)))
+include $(DIR)/.config.mk
 
 unexport CFLAGS
 unexport LDFLAGS
 
-define DOWNLOAD
-       @mkdir -p $(LIBAVDIR)/build
-       @if test -z "$${TVHEADEND_FILE_CACHE}"; then \
-         printf "WGET            $(1)\n"; \
-         wget --no-verbose -O $(2) $(1); \
-       else \
-         file=$$(basename $(2)); \
-         cp "$$TVHEADEND_FILE_CACHE/$$(file)" $(2); \
-       fi
-       @{ \
-         sum=$$(sha1sum $(2) | cut -d ' ' -f 1); \
-         printf "SHA1SUM test '$${sum}' == '$(3)': "; \
-         test "y$${sum}" = "y$(3)"; \
-       }
-       @echo "OK"
-endef
-
-define UNTAR
-       @{ \
-         printf "UNTAR           $(1)\n"; \
-         tar x -C $(LIBAVDIR) -$(2)f $(LIBAVDIR)/$(1); \
-       }
-endef
-
-LIBAVDIR = $(ROOTDIR)/libav_static
-
-export PATH := $(LIBAVDIR)/build/ffmpeg/bin:$(PATH)
-
-ECFLAGS         = -I$(LIBAVDIR)/build/ffmpeg/include
-ELIBS           = -L$(LIBAVDIR)/build/ffmpeg/lib -ldl
-
-EXTRAENV        =
-CONFIGURE       = TVHEADEND_LIBAV_BUILD=$(LIBAVDIR)/build/ffmpeg \
-                  PKG_CONFIG=$(ROOTDIR)/support/pkg-config.ffmpeg ./configure
+# ###########################################################################
+# Upstream Packages
+# ###########################################################################
 
 FFMPEG          = ffmpeg-2.8.2
 FFMPEG_TB       = $(FFMPEG).tar.bz2
@@ -106,24 +76,65 @@ LIBMFX_TB       = $(LIBMFX_HASH).tar.gz
 LIBMFX_URL      = https://github.com/lu-zero/mfx_dispatch/archive/$(LIBMFX_TB)
 LIBMFX_SHA1     = e7905a4e18f8d3933f23ed5cf5a96a40a31c76a8
 
-
-.PHONY: build
-build: $(LIBAVDIR)/$(FFMPEG)/.tvh_build
+# ###########################################################################
+# Library Config
+# ###########################################################################
+
+LIB_NAME  := ffmpeg
+LIB_ROOT  := $(BUILDDIR)/$(LIB_NAME)
+LIB_FILES :=\
+       $(LIB_ROOT)/$(FFMPEG)/.tvh_download \
+       $(LIB_ROOT)/$(FFMPEG)/.tvh_build \
+       $(LIB_ROOT)/$(LIBOGG)/.tvh_download \
+       $(LIB_ROOT)/$(LIBOGG)/.tvh_build \
+       $(LIB_ROOT)/$(LIBVORBIS)/.tvh_download \
+       $(LIB_ROOT)/$(LIBVORBIS)/.tvh_build \
+       $(LIB_ROOT)/$(LIBX264)/.tvh_download \
+       $(LIB_ROOT)/$(LIBX264)/.tvh_build \
+       $(LIB_ROOT)/$(LIBX265)/.tvh_download \
+       $(LIB_ROOT)/$(LIBX265)/.tvh_build \
+       $(LIB_ROOT)/$(LIBVPX)/.tvh_download \
+       $(LIB_ROOT)/$(LIBVPX)/.tvh_build \
+       $(LIB_ROOT)/$(YASM)/.tvh_download \
+       $(LIB_ROOT)/$(YASM)/.tvh_build \
+       $(LIB_ROOT)/$(LIBMFX)/.tvh_download \
+       $(LIB_ROOT)/$(LIBMFX)/.tvh_build \
+       $(LIB_ROOT)/build/ffmpeg/lib/*.a \
+       $(LIB_ROOT)/build/ffmpeg/include/*
+
+include $(DIR)/Makefile.static
+
+.PHONY: build $(PHONY)
+build: $(LIB_ROOT)/$(FFMPEG)/.tvh_build
+
+# ###########################################################################
+# Build Rules
+# ###########################################################################
+
+export PATH := $(LIB_ROOT)/build/ffmpeg/bin:$(PATH)
+
+ECFLAGS      = -I$(LIB_ROOT)/build/ffmpeg/include
+ELIBS        = -L$(LIB_ROOT)/build/ffmpeg/lib -ldl
+
+EXTRAENV     =
+CONFIGURE    = TVHEADEND_LIBAV_BUILD=$(LIB_ROOT)/build/ffmpeg \
+  PKG_CONFIG=$(ROOTDIR)/support/pkg-config.ffmpeg ./configure
 
 #
 # YASM
 #
-$(LIBAVDIR)/$(YASM)/.tvh_download:
-       $(call DOWNLOAD,$(YASM_URL),$(LIBAVDIR)/$(YASM_TB),$(YASM_SHA1))
+
+$(LIB_ROOT)/$(YASM)/.tvh_download:
+       $(call DOWNLOAD,$(YASM_URL),$(LIB_ROOT)/$(YASM_TB),$(YASM_SHA1))
        $(call UNTAR,$(YASM_TB),z)
        @touch $@
 
-$(LIBAVDIR)/$(YASM)/.tvh_build: \
-               $(LIBAVDIR)/$(YASM)/.tvh_download
-       cd $(LIBAVDIR)/$(YASM) && $(CONFIGURE) \
+$(LIB_ROOT)/$(YASM)/.tvh_build: \
+               $(LIB_ROOT)/$(YASM)/.tvh_download
+       cd $(LIB_ROOT)/$(YASM) && $(CONFIGURE) \
                 --prefix=/ffmpeg
-       DESTDIR=$(LIBAVDIR)/build \
-               $(MAKE) -C $(LIBAVDIR)/$(YASM) install
+       DESTDIR=$(LIB_ROOT)/build \
+               $(MAKE) -C $(LIB_ROOT)/$(YASM) install
        @touch $@
 
 #
@@ -173,20 +184,20 @@ endif
 
 ifeq (yes,$(CONFIG_LIBMFX_STATIC))
 
-$(LIBAVDIR)/$(LIBMFX)/.tvh_download:
-       $(call DOWNLOAD,$(LIBMFX_URL),$(LIBAVDIR)/$(LIBMFX_TB),$(LIBMFX_SHA1))
+$(LIB_ROOT)/$(LIBMFX)/.tvh_download:
+       $(call DOWNLOAD,$(LIBMFX_URL),$(LIB_ROOT)/$(LIBMFX_TB),$(LIBMFX_SHA1))
        $(call UNTAR,$(LIBMFX_TB),z)
        @touch $@
 
-$(LIBAVDIR)/$(LIBMFX)/.tvh_build: \
-               $(LIBAVDIR)/$(LIBMFX)/.tvh_download
-       cd $(LIBAVDIR)/$(LIBMFX) && autoreconf -i
-       cd $(LIBAVDIR)/$(LIBMFX) && ./configure \
+$(LIB_ROOT)/$(LIBMFX)/.tvh_build: \
+               $(LIB_ROOT)/$(LIBMFX)/.tvh_download
+       cd $(LIB_ROOT)/$(LIBMFX) && autoreconf -i
+       cd $(LIB_ROOT)/$(LIBMFX) && ./configure \
                --prefix=/ffmpeg \
                --enable-static \
                --disable-shared
-       DESTDIR=$(LIBAVDIR)/build \
-               $(MAKE) -C $(LIBAVDIR)/$(LIBMFX) install
+       DESTDIR=$(LIB_ROOT)/build \
+               $(MAKE) -C $(LIB_ROOT)/$(LIBMFX) install
        @touch $@
 
 else
@@ -196,12 +207,12 @@ LIBMFX_LIBS   = $(shell $(PKG_CONFIG) --libs libmfx)
 
 EXTRAENV += TVHEADEND_LIBMFX_CFLAGS="$(LIBMFX_CFLAGS)" TVHEADEND_LIBMFX_LIBS="$(LIBMFX_LIBS)"
 
-$(LIBAVDIR)/$(LIBMFX)/.tvh_download:
-       @mkdir -p $(LIBAVDIR)/$(LIBMFX)
+$(LIB_ROOT)/$(LIBMFX)/.tvh_download:
+       @mkdir -p $(LIB_ROOT)/$(LIBMFX)
        @touch $@
 
-$(LIBAVDIR)/$(LIBMFX)/.tvh_build: \
-               $(LIBAVDIR)/$(LIBMFX)/.tvh_download
+$(LIB_ROOT)/$(LIBMFX)/.tvh_build: \
+               $(LIB_ROOT)/$(LIBMFX)/.tvh_download
        @touch $@
 
 endif
@@ -210,39 +221,39 @@ endif
 # libogg & libvorbis
 #
 
-$(LIBAVDIR)/$(LIBOGG)/.tvh_download:
-       $(call DOWNLOAD,$(LIBOGG_URL),$(LIBAVDIR)/$(LIBOGG_TB),$(LIBOGG_SHA1))
+$(LIB_ROOT)/$(LIBOGG)/.tvh_download:
+       $(call DOWNLOAD,$(LIBOGG_URL),$(LIB_ROOT)/$(LIBOGG_TB),$(LIBOGG_SHA1))
        $(call UNTAR,$(LIBOGG_TB),z)
        @touch $@
 
-$(LIBAVDIR)/$(LIBOGG)/.tvh_build: \
-               $(LIBAVDIR)/$(YASM)/.tvh_build \
-               $(LIBAVDIR)/$(LIBOGG)/.tvh_download
-       cd $(LIBAVDIR)/$(LIBOGG) && $(CONFIGURE) \
+$(LIB_ROOT)/$(LIBOGG)/.tvh_build: \
+               $(LIB_ROOT)/$(YASM)/.tvh_build \
+               $(LIB_ROOT)/$(LIBOGG)/.tvh_download
+       cd $(LIB_ROOT)/$(LIBOGG) && $(CONFIGURE) \
                --prefix=/ffmpeg \
                --enable-static \
                --disable-shared
-       DESTDIR=$(LIBAVDIR)/build \
-               $(MAKE) -C $(LIBAVDIR)/$(LIBOGG) install
+       DESTDIR=$(LIB_ROOT)/build \
+               $(MAKE) -C $(LIB_ROOT)/$(LIBOGG) install
        @touch $@
 
-$(LIBAVDIR)/$(LIBVORBIS)/.tvh_download: \
-               $(LIBAVDIR)/$(LIBOGG)/.tvh_download
-       $(call DOWNLOAD,$(LIBVORBIS_URL),$(LIBAVDIR)/$(LIBVORBIS_TB),$(LIBVORBIS_SHA1))
+$(LIB_ROOT)/$(LIBVORBIS)/.tvh_download: \
+               $(LIB_ROOT)/$(LIBOGG)/.tvh_download
+       $(call DOWNLOAD,$(LIBVORBIS_URL),$(LIB_ROOT)/$(LIBVORBIS_TB),$(LIBVORBIS_SHA1))
        $(call UNTAR,$(LIBVORBIS_TB),z)
        @touch $@
 
-$(LIBAVDIR)/$(LIBVORBIS)/.tvh_build: \
-               $(LIBAVDIR)/$(LIBVORBIS)/.tvh_download \
-               $(LIBAVDIR)/$(YASM)/.tvh_build \
-               $(LIBAVDIR)/$(LIBOGG)/.tvh_build
-       cd $(LIBAVDIR)/$(LIBVORBIS) && $(CONFIGURE) \
+$(LIB_ROOT)/$(LIBVORBIS)/.tvh_build: \
+               $(LIB_ROOT)/$(LIBVORBIS)/.tvh_download \
+               $(LIB_ROOT)/$(YASM)/.tvh_build \
+               $(LIB_ROOT)/$(LIBOGG)/.tvh_build
+       cd $(LIB_ROOT)/$(LIBVORBIS) && $(CONFIGURE) \
                --prefix=/ffmpeg \
                --enable-static \
                --disable-shared \
-               --with-ogg=$(LIBAVDIR)/build/ffmpeg
-       DESTDIR=$(LIBAVDIR)/build \
-               $(MAKE) -C $(LIBAVDIR)/$(LIBVORBIS) install
+               --with-ogg=$(LIB_ROOT)/build/ffmpeg
+       DESTDIR=$(LIB_ROOT)/build \
+               $(MAKE) -C $(LIB_ROOT)/$(LIBVORBIS) install
        @touch $@
 
 #
@@ -251,12 +262,12 @@ $(LIBAVDIR)/$(LIBVORBIS)/.tvh_build: \
 
 ifneq (yes,$(CONFIG_LIBX264_STATIC))
 
-$(LIBAVDIR)/$(LIBX264)/.tvh_download:
+$(LIB_ROOT)/$(LIBX264)/.tvh_download:
        @echo "***** LIBX264 STATIC BUILD IS DISABLED, USING INSTALLED PACKAGE *****"
-       @mkdir -p $(LIBAVDIR)/$(LIBX264)
+       @mkdir -p $(LIB_ROOT)/$(LIBX264)
        @touch $@
 
-$(LIBAVDIR)/$(LIBX264)/.tvh_build: $(LIBAVDIR)/$(LIBX264)/.tvh_download
+$(LIB_ROOT)/$(LIBX264)/.tvh_build: $(LIB_ROOT)/$(LIBX264)/.tvh_download
        @touch $@
 
 else
@@ -265,17 +276,17 @@ ifneq (,$(DEB_BUILD_GNU_TYPE))
 LIBX264_HOST := --host=$(DEB_BUILD_GNU_TYPE)
 endif
 
-$(LIBAVDIR)/$(LIBX264)/.tvh_download:
-       $(call DOWNLOAD,$(LIBX264_URL),$(LIBAVDIR)/$(LIBX264_TB),$(LIBX264_SHA1))
-       #rm -rf $(LIBAVDIR)/x264-snapshot-*
+$(LIB_ROOT)/$(LIBX264)/.tvh_download:
+       $(call DOWNLOAD,$(LIBX264_URL),$(LIB_ROOT)/$(LIBX264_TB),$(LIBX264_SHA1))
+       #rm -rf $(LIB_ROOT)/x264-snapshot-*
        $(call UNTAR,$(LIBX264_TB),j)
-       #{ ln -sf $$(basename $(LIBAVDIR)/x264-snapshot-*) $(LIBAVDIR)/$(LIBX264); }
+       #{ ln -sf $$(basename $(LIB_ROOT)/x264-snapshot-*) $(LIB_ROOT)/$(LIBX264); }
        @touch $@
 
-$(LIBAVDIR)/$(LIBX264)/.tvh_build: \
-               $(LIBAVDIR)/$(LIBX264)/.tvh_download \
-               $(LIBAVDIR)/$(YASM)/.tvh_build
-       cd $(LIBAVDIR)/$(LIBX264) && $(CONFIGURE) \
+$(LIB_ROOT)/$(LIBX264)/.tvh_build: \
+               $(LIB_ROOT)/$(LIBX264)/.tvh_download \
+               $(LIB_ROOT)/$(YASM)/.tvh_build
+       cd $(LIB_ROOT)/$(LIBX264) && $(CONFIGURE) \
                --prefix=/ffmpeg \
                --enable-static \
                --disable-shared \
@@ -286,8 +297,8 @@ $(LIBAVDIR)/$(LIBX264)/.tvh_build: \
                --disable-gpac \
                --disable-lsmash \
                $(LIBX264_HOST)
-       DESTDIR=$(LIBAVDIR)/build \
-               $(MAKE) -C $(LIBAVDIR)/$(LIBX264) install
+       DESTDIR=$(LIB_ROOT)/build \
+               $(MAKE) -C $(LIB_ROOT)/$(LIBX264) install
        @touch $@
 
 endif
@@ -306,30 +317,30 @@ endif
 
 ifeq (yes,$(CONFIG_LIBX265_STATIC))
 
-$(LIBAVDIR)/$(LIBX265)/.tvh_download:
-       $(call DOWNLOAD,$(LIBX265_URL),$(LIBAVDIR)/$(LIBX265_TB),$(LIBX265_SHA1))
+$(LIB_ROOT)/$(LIBX265)/.tvh_download:
+       $(call DOWNLOAD,$(LIBX265_URL),$(LIB_ROOT)/$(LIBX265_TB),$(LIBX265_SHA1))
        $(call UNTAR,$(LIBX265_TB),z)
        @touch $@
 
-$(LIBAVDIR)/$(LIBX265)/.tvh_build: \
-               $(LIBAVDIR)/$(LIBX265)/.tvh_download \
-               $(LIBAVDIR)/$(YASM)/.tvh_build
-       cd $(LIBAVDIR)/$(LIBX265)/build/linux && cmake \
+$(LIB_ROOT)/$(LIBX265)/.tvh_build: \
+               $(LIB_ROOT)/$(LIBX265)/.tvh_download \
+               $(LIB_ROOT)/$(YASM)/.tvh_build
+       cd $(LIB_ROOT)/$(LIBX265)/build/linux && cmake \
                -G "Unix Makefiles" \
                -DCMAKE_INSTALL_PREFIX="/ffmpeg" \
                -DENABLE_SHARED:bool=off \
                ../../source
-       DESTDIR=$(LIBAVDIR)/build \
-               $(MAKE) -C $(LIBAVDIR)/$(LIBX265)/build/linux install
+       DESTDIR=$(LIB_ROOT)/build \
+               $(MAKE) -C $(LIB_ROOT)/$(LIBX265)/build/linux install
        @touch $@
 
 else
 
-$(LIBAVDIR)/$(LIBX265)/.tvh_download:
-       @mkdir -p $(LIBAVDIR)/$(LIBX265)
+$(LIB_ROOT)/$(LIBX265)/.tvh_download:
+       @mkdir -p $(LIB_ROOT)/$(LIBX265)
        @touch $@
 
-$(LIBAVDIR)/$(LIBX265)/.tvh_build: $(LIBAVDIR)/$(LIBX265)/.tvh_download
+$(LIB_ROOT)/$(LIBX265)/.tvh_build: $(LIB_ROOT)/$(LIBX265)/.tvh_download
        @touch $@
 
 endif
@@ -338,32 +349,32 @@ endif
 # libvpx (VP8)
 #
 
-$(LIBAVDIR)/$(LIBVPX)/.tvh_download:
-       @mkdir -p $(LIBAVDIR)
-       $(call DOWNLOAD,$(LIBVPX_URL),$(LIBAVDIR)/$(LIBVPX_TB),$(LIBVPX_SHA1))
+$(LIB_ROOT)/$(LIBVPX)/.tvh_download:
+       @mkdir -p $(LIB_ROOT)
+       $(call DOWNLOAD,$(LIBVPX_URL),$(LIB_ROOT)/$(LIBVPX_TB),$(LIBVPX_SHA1))
        $(call UNTAR,$(LIBVPX_TB),j)
        @touch $@
 
-$(LIBAVDIR)/$(LIBVPX)/.tvh_build: \
-               $(LIBAVDIR)/$(LIBVPX)/.tvh_download \
-               $(LIBAVDIR)/$(YASM)/.tvh_build
-       cd $(LIBAVDIR)/$(LIBVPX) && $(CONFIGURE) \
+$(LIB_ROOT)/$(LIBVPX)/.tvh_build: \
+               $(LIB_ROOT)/$(LIBVPX)/.tvh_download \
+               $(LIB_ROOT)/$(YASM)/.tvh_build
+       cd $(LIB_ROOT)/$(LIBVPX) && $(CONFIGURE) \
                --prefix=/ffmpeg \
                --enable-static \
                --disable-shared
-       DIST_DIR=$(LIBAVDIR)/build/ffmpeg \
-               $(MAKE) -C $(LIBAVDIR)/$(LIBVPX) install
+       DIST_DIR=$(LIB_ROOT)/build/ffmpeg \
+               $(MAKE) -C $(LIB_ROOT)/$(LIBVPX) install
        @touch $@
 
 #
 # FFMPEG
 #
 
-$(LIBAVDIR)/$(FFMPEG)/.tvh_download:
-       @mkdir -p $(LIBAVDIR)/build
-       $(call DOWNLOAD,$(FFMPEG_URL),$(LIBAVDIR)/$(FFMPEG_TB),$(FFMPEG_SHA1))
+$(LIB_ROOT)/$(FFMPEG)/.tvh_download:
+       @mkdir -p $(LIB_ROOT)/build
+       $(call DOWNLOAD,$(FFMPEG_URL),$(LIB_ROOT)/$(FFMPEG_TB),$(FFMPEG_SHA1))
        $(call UNTAR,$(FFMPEG_TB),j)
-       @cd $(LIBAVDIR)/$(FFMPEG) && echo -en "\
+       @cd $(LIB_ROOT)/$(FFMPEG) && echo -en "\
 --- libavcodec/libvpxenc.c.old 2015-11-21 21:52:16.502341511 +0100\n\
 +++ libavcodec/libvpxenc.c     2015-11-21 21:53:18.164552128 +0100\n\
 @@ -104,19 +104,11 @@\n\
@@ -388,15 +399,15 @@ $(LIBAVDIR)/$(FFMPEG)/.tvh_download:
      [VP8E_SET_ARNR_TYPE]         = \"VP8E_SET_ARNR_TYPE\",\n" | patch -p0
        @touch $@
 
-$(LIBAVDIR)/$(FFMPEG)/.tvh_build: \
-               $(LIBAVDIR)/$(YASM)/.tvh_build \
-               $(LIBAVDIR)/$(LIBVORBIS)/.tvh_build \
-               $(LIBAVDIR)/$(LIBX264)/.tvh_build \
-               $(LIBAVDIR)/$(LIBX265)/.tvh_build \
-               $(LIBAVDIR)/$(LIBVPX)/.tvh_build \
-               $(LIBAVDIR)/$(LIBMFX)/.tvh_build \
-               $(LIBAVDIR)/$(FFMPEG)/.tvh_download
-       cd $(LIBAVDIR)/$(FFMPEG) && $(EXTRAENV) $(CONFIGURE) \
+$(LIB_ROOT)/$(FFMPEG)/.tvh_build: \
+               $(LIB_ROOT)/$(YASM)/.tvh_build \
+               $(LIB_ROOT)/$(LIBVORBIS)/.tvh_build \
+               $(LIB_ROOT)/$(LIBX264)/.tvh_build \
+               $(LIB_ROOT)/$(LIBX265)/.tvh_build \
+               $(LIB_ROOT)/$(LIBVPX)/.tvh_build \
+               $(LIB_ROOT)/$(LIBMFX)/.tvh_build \
+               $(LIB_ROOT)/$(FFMPEG)/.tvh_download
+       cd $(LIB_ROOT)/$(FFMPEG) && $(EXTRAENV) $(CONFIGURE) \
                 --prefix=/ffmpeg \
                --disable-all \
                --enable-static \
@@ -413,10 +424,6 @@ $(LIBAVDIR)/$(FFMPEG)/.tvh_build: \
                $(foreach muxer,$(MUXERS),--enable-muxer=$(muxer)) \
                $(foreach bsf,$(BSFS),--enable-bsf=$(bsf)) \
                $(foreach filter,$(FILTERS),--enable-filter=$(filter))
-       DESTDIR=$(LIBAVDIR)/build \
-               $(MAKE) -C $(LIBAVDIR)/$(FFMPEG) install
+       DESTDIR=$(LIB_ROOT)/build \
+               $(MAKE) -C $(LIB_ROOT)/$(FFMPEG) install
        @touch $@
-
-.PHONY: static_libav_clean
-static_libav_clean:
-       @rm -rf $(LIBAVDIR)
index 943ffec24f0b9c661ebf07cec6353d7a5125d857..daa16ca99c53b942384d85c892ee37eccb8c2941 100644 (file)
 #  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-include $(dir $(lastword $(MAKEFILE_LIST))).config.mk
+DIR :=  $(dir $(lastword $(MAKEFILE_LIST)))
+include $(DIR)/.config.mk
 
 unexport CFLAGS
 unexport LDFLAGS
 
-define DOWNLOAD
-       @mkdir -p $(LIBHDHRDIR)/build
-       @if test -z "$${TVHEADEND_FILE_CACHE}"; then \
-         printf "WGET            $(1)\n"; \
-         wget --no-verbose -O $(2) $(1); \
-       else \
-         file=$$(basename $(2)); \
-         cp "$$TVHEADEND_FILE_CACHE/$$(file)" $(2); \
-       fi
-       @{ \
-         sum=$$(sha1sum $(2) | cut -d ' ' -f 1); \
-         printf "SHA1SUM test '$${sum}' == '$(3)': "; \
-         test "y$${sum}" = "y$(3)"; \
-       }
-       @echo "OK"
-endef
-
-define UNTAR
-       @{ \
-         printf "UNTAR           $(1)\n"; \
-         tar x -C $(LIBHDHRDIR) -$(2)f $(LIBHDHRDIR)/$(1); \
-       }
-endef
-
-LIBHDHRDIR = $(ROOTDIR)/libhdhomerun_static
-
-export PATH := $(LIBHDHRDIR)/build/bin:$(PATH)
+# ###########################################################################
+# Upstream Packages
+# ###########################################################################
 
 LIBHDHR         = libhdhomerun_20150826
 LIBHDHR_TB      = $(LIBHDHR).tgz
 LIBHDHR_URL     = http://download.silicondust.com/hdhomerun/$(LIBHDHR_TB)
 LIBHDHR_SHA1    = 24ce6003b1e815ec4c642d180b621c1d524ca1cf
 
+# ###########################################################################
+# Library Config
+# ###########################################################################
+
+LIB_NAME       := hdhomerun
+LIB_ROOT       := $(BUILDDIR)/$(LIB_NAME)
+LIB_FILES      := \
+       $(LIB_ROOT)/$(LIBHDHR)/.tvh_download\
+       $(LIB_ROOT)/$(LIBHDHR)/.tvh_build\
+       $(LIB_ROOT)/libhdhomerun/libhdhomerun.a\
+       $(LIB_ROOT)/libhdhomerun/*.h
+
+include $(DIR)/Makefile.static
+
 .PHONY: build
-build: $(LIBHDHRDIR)/$(LIBHDHR)/.tvh_build
+build: $(LIB_ROOT)/$(LIBHDHR)/.tvh_build
+
+# ###########################################################################
+# Build Rules
+# ###########################################################################
+
+export PATH := $(LIB_ROOT)/build/bin:$(PATH)
 
 #
 # libhdhomerun
 #
 
--include $(LIBHDHRDIR)/$(LIBHDHR)/Makefile
+-include $(LIB_ROOT)/$(LIBHDHR)/Makefile
 
-OBJS = $(foreach file,$(LIBSRCS),$(LIBHDHRDIR)/$(LIBHDHR)/$(basename $(file)).o)
+OBJS := $(foreach file,$(LIBSRCS),$(LIB_ROOT)/$(LIBHDHR)/$(basename $(file)).o)
 
-$(LIBHDHRDIR)/$(LIBHDHR)/%.o: $(LIBHDHRDIR)/$(LIBHDHR)/%.c
+$(LIB_ROOT)/$(LIBHDHR)/%.o: $(LIB_ROOT)/$(LIBHDHR)/%.c
        $(CC) -MD -MP $(CFLAGS) -c -o $@ $<
 
-$(LIBHDHRDIR)/$(LIBHDHR)/libhdhomerun.a: $(OBJS)
+$(LIB_ROOT)/$(LIBHDHR)/libhdhomerun.a: $(OBJS)
        $(AR) rcs $@ $^
 
-$(LIBHDHRDIR)/$(LIBHDHR)/.tvh_download:
-       $(call DOWNLOAD,$(LIBHDHR_URL),$(LIBHDHRDIR)/$(LIBHDHR_TB),$(LIBHDHR_SHA1))
+$(LIB_ROOT)/$(LIBHDHR)/.tvh_download:
+       $(call DOWNLOAD,$(LIBHDHR_URL),$(LIB_ROOT)/$(LIBHDHR_TB),$(LIBHDHR_SHA1))
        $(call UNTAR,$(LIBHDHR_TB),z)
-       ln -sf libhdhomerun $(LIBHDHRDIR)/$(LIBHDHR)
+       ln -sf libhdhomerun $(LIB_ROOT)/$(LIBHDHR)
        @touch $@
 
-$(LIBHDHRDIR)/$(LIBHDHR)/.tvh_build: \
-               $(LIBHDHRDIR)/$(LIBHDHR)/.tvh_download
-       $(MAKE) -f Makefile.hdhomerun $(LIBHDHRDIR)/$(LIBHDHR)/libhdhomerun.a
+$(LIB_ROOT)/$(LIBHDHR)/.tvh_build: \
+               $(LIB_ROOT)/$(LIBHDHR)/.tvh_download
+       $(MAKE) -f Makefile.hdhomerun $(LIB_ROOT)/$(LIBHDHR)/libhdhomerun.a
        @touch $@
 
 .PHONY: static_libhdhr_clean
 static_libhdhr_clean:
-       @rm -rf $(LIBHDHRDIR)
+       @rm -rf $(LIB_ROOT)