Temat: Kompilacja pakietów IPK

Mam problem ze skompilowaniem akurat w tym wypadku najnowszego pakietu TVHEADEND w wersji 3.5

Zrobiłem w lokalizacji /gargoyle/package/ katalog tvheadend a w nim plik makefile:

#
# Copyright (C) 2012 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=tvheadend
PKG_RELEASE:=1

PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git://github.com/tvheadend/tvheadend.git
PKG_SOURCE_VERSION:=e343bfdcca877d4a19a2d86d1713fb0f46ab0b50
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE-VERSION)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz

PKG_VERSION:=$(PKG_SOURCE_VERSION)

include $(INCLUDE_DIR)/package.mk

define Package/tvheadend
    SECTION:=multimedia
    CATEGORY:=Multimedia
    TITLE:=Tvheadend is a TV streaming server for Linux
    DEPENDS:=+libopenssl +librt +zlib +TVHEADEND_AVAHI_SUPPORT:libavahi-client +libcurl +libffmpeg-0.11
    URL:=http://www.lonelycoder.com/hts/tvheadend_overview.html
endef

define Package/tvheadend/description
    Tvheadend is a TV streaming server for Linux supporting DVB, ATSC, IPTV,
    and Analog video (V4L) as input sources.
    Can be used as a backend to Showtime, XBMC and various other clients.
endef

define Package/tvheadend/config
    menu "Configuration"
    depends on PACKAGE_tvheadend
    source "$(SOURCE)/Config.in"
    endmenu
endef

ifeq ($(CONFIG_TVHEADEND_CWC_SUPPORT),)
    CONFIGURE_ARGS += --disable-cwc
endif

ifeq ($(CONFIG_TVHEADEND_V4L_SUPPORT),)
    CONFIGURE_ARGS += --disable-v4l
endif

ifeq ($(CONFIG_TVHEADEND_LINUXDVB_SUPPORT),)
    CONFIGURE_ARGS += --disable-linuxdvb
endif

ifeq ($(CONFIG_TVHEADEND_DVBSCAN_SUPPORT),)
    CONFIGURE_ARGS += --disable-dvbscan
endif

ifeq ($(CONFIG_TVHEADEND_AVAHI_SUPPORT),)
    CONFIGURE_ARGS += --disable-avahi
else
    CONFIGURE_ARGS += --enable-avahi
endif

CONFIGURE_ARGS += \
    --release \
    --enable-bundle

define Package/tvheadend/install
    $(INSTALL_DIR) $(1)/etc/tvheadend
    $(INSTALL_DIR) $(1)/etc/init.d
    $(INSTALL_BIN) ./files/tvheadend.init $(1)/etc/init.d/tvheadend
    $(INSTALL_DIR) $(1)/lib/upgrade/keep.d
    $(INSTALL_DATA) ./files/tvheadend.upgrade $(1)/lib/upgrade/keep.d/tvheadend
    
    $(INSTALL_DIR) $(1)/usr/bin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/build.linux/tvheadend $(1)/usr/bin/
endef

$(eval $(call BuildPackage,tvheadend))

następnie w make menuconfig zaznaczyłem z literka M pakiet tvheadend i chciałem skompilować

Dałem polecenia i wyskoczyły błedy jednak nie wiem co jest powodem błedów:

piotr@piotr-XXXXXX:~/gargoyle/ar71xx-src$ make package/tvheadend/compile
make[1] package/tvheadend/compile
make[2] -C package/toolchain compile
make[2] -C package/ocf-crypto-headers compile
make[2] -C package/zlib compile
make[2] -C package/openssl compile
make[2] -C package/tvheadend compile
make -r package/tvheadend/compile: build failed. Please re-run make with V=s to see what's going on
make: *** [package/tvheadend/compile] Błąd 1
piotr@piotr-XXXXXX:~/gargoyle/ar71xx-src$ make V=s package/tvheadend/compile
make[1]: Entering directory `/home/piotr/gargoyle/ar71xx-src'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/toolchain'
WARNING: skipping libssp -- package not selected
WARNING: skipping libstdcpp -- package not selected
WARNING: skipping libgfortran -- package not selected
WARNING: skipping ldd -- package not selected
WARNING: skipping ldconfig -- package not selected
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/toolchain'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/ocf-crypto-headers'
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/ocf-crypto-headers'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/zlib'
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/zlib'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/openssl'
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/openssl'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/tvheadend'
CFLAGS="-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float  -I/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/usr/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/include " CXXFLAGS="-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float  -I/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/usr/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/include " LDFLAGS="-L/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/lib -L/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/lib -L/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/usr/lib -L/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/lib " make -j1 -C /home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50/. AR=mips-openwrt-linux-uclibc-ar AS="mips-openwrt-linux-uclibc-gcc -c -Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float" LD=mips-openwrt-linux-uclibc-ld NM=mips-openwrt-linux-uclibc-nm CC="mips-openwrt-linux-uclibc-gcc" GCC="mips-openwrt-linux-uclibc-gcc" CXX="mips-openwrt-linux-uclibc-g++" RANLIB=mips-openwrt-linux-uclibc-ranlib STRIP=mips-openwrt-linux-uclibc-strip OBJCOPY=mips-openwrt-linux-uclibc-objcopy OBJDUMP=mips-openwrt-linux-uclibc-objdump SIZE=mips-openwrt-linux-uclibc-size CROSS="mips-openwrt-linux-uclibc-" ARCH="mips" ;
make[3]: Entering directory `/home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50'
make[3]: *** No targets specified and no makefile found.  Stop.
make[3]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50'
make[2]: *** [/home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50/.built] Error 2
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/tvheadend'
make[1]: *** [package/tvheadend/compile] Error 2
make[1]: Leaving directory `/home/piotr/gargoyle/ar71xx-src'
make: *** [package/tvheadend/compile] Błąd 2

2

Odp: Kompilacja pakietów IPK

Czy w katalogu /home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50 masz plik Makefile lub configure? Bo mi kompilacja przechodzi bez problemu (na openwrt, nie gargoyle)

libffmpeg-0.11 na pewno nie masz, samo libffmpeg jak juz i dodaje go do katalogu z pakietami (i zależności jego).

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez pepe_lodz 2013-08-11 11:13:17)

Odp: Kompilacja pakietów IPK

Dodałem plik makefile ten sam co w package/tvheadend do katalogu /home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50

Natomiast z tym libffmpeg to jak wchodze w make menuconfig i LIBRARIES to tam jest zaznaczone aby w obrazie było libffmpeg mini.

Problem jest dalej...


piotr@piotr-XXXXXX:~/gargoyle/ar71xx-src$ make V=s package/tvheadend/compile
make[1]: Entering directory `/home/piotr/gargoyle/ar71xx-src'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/toolchain'
WARNING: skipping libssp -- package not selected
WARNING: skipping libstdcpp -- package not selected
WARNING: skipping libgfortran -- package not selected
WARNING: skipping ldd -- package not selected
WARNING: skipping ldconfig -- package not selected
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/toolchain'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/ocf-crypto-headers'
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/ocf-crypto-headers'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/zlib'
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/zlib'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/openssl'
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/openssl'
make[2]: Entering directory `/home/piotr/gargoyle/ar71xx-src/package/tvheadend'
CFLAGS="-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float  -I/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/usr/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/include " CXXFLAGS="-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float  -I/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/usr/include -I/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/include " LDFLAGS="-L/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/usr/lib -L/home/piotr/gargoyle/ar71xx-src/staging_dir/target-mips_r2_uClibc-0.9.33.2/lib -L/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/usr/lib -L/home/piotr/gargoyle/ar71xx-src/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/lib " make -j1 -C /home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50/. AR=mips-openwrt-linux-uclibc-ar AS="mips-openwrt-linux-uclibc-gcc -c -Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float" LD=mips-openwrt-linux-uclibc-ld NM=mips-openwrt-linux-uclibc-nm CC="mips-openwrt-linux-uclibc-gcc" GCC="mips-openwrt-linux-uclibc-gcc" CXX="mips-openwrt-linux-uclibc-g++" RANLIB=mips-openwrt-linux-uclibc-ranlib STRIP=mips-openwrt-linux-uclibc-strip OBJCOPY=mips-openwrt-linux-uclibc-objcopy OBJDUMP=mips-openwrt-linux-uclibc-objdump SIZE=mips-openwrt-linux-uclibc-size CROSS="mips-openwrt-linux-uclibc-" ARCH="mips" ;
make[3]: Entering directory `/home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50'
make[3]: *** No targets specified and no makefile found.  Stop.
make[3]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50'
make[2]: *** [/home/piotr/gargoyle/ar71xx-src/build_dir/target-mips_r2_uClibc-0.9.33.2/tvheadend-e343bfdcca877d4a19a2d86d1713fb0f46ab0b50/.built] Error 2
make[2]: Leaving directory `/home/piotr/gargoyle/ar71xx-src/package/tvheadend'
make[1]: *** [package/tvheadend/compile] Error 2
make[1]: Leaving directory `/home/piotr/gargoyle/ar71xx-src'
make: *** [package/tvheadend/compile] Błąd 2
piotr@piotr-XXXXXX:~/gargoyle/ar71xx-src$

4

Odp: Kompilacja pakietów IPK

NIE! Nic nie dodawaj, pomieszałeś plik makefile z openwrt od makefile samego pakietu. Czy gdziekolwiek było napisane żeby coś takiego robić?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Kompilacja pakietów IPK

To co mam zrobic bo juz Teraz nie rozumie nic... Prosze wytlumacz mi to jak najprosciej. Czyli ten plik makefile co mialem spacje a nie tabulacje (ten co link dales mi z forum) mam wrzucic do katalogu package/tvheadend i w nim bedzie plik ten makefile. A co dalej w takim razie z bledami ?

Co ma byc w tej lokalizacji built-dir/target-mips itd ?

6

Odp: Kompilacja pakietów IPK

make package/tvheadend/clean
make package/tvheadend/compile

masz zrobić. Nic nie kopiować, nic nie modyfikować, nic samemu nie zmieniać (po za tą zależnością popraw libffmpeg-0.11 na libffmpeg i dodaj do packages brakujące paczki z zależnościami).

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7 (edytowany przez pepe_lodz 2013-08-11 15:56:24)

Odp: Kompilacja pakietów IPK

A gdzie siedzi libffmpeg-0.11 ?

I jak sprawdzic jakie zaleznosci sa potrzebne i skad je pobrac z plikami makefile aby wrzucic je do packages ?