| 1 | # Copyright 1999-2005 Gentoo Foundation |
1 | # Copyright 1999-2005 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/vdr-plugin.eclass,v 1.62 2008/06/02 05:15:27 zzam Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/vdr-plugin.eclass,v 1.66 2009/02/23 23:46:31 zzam Exp $ |
| 4 | # |
4 | # |
| 5 | # Author: |
5 | # Author: |
| 6 | # Matthias Schwarzott <zzam@gentoo.org> |
6 | # Matthias Schwarzott <zzam@gentoo.org> |
| 7 | # Joerg Bornkessel <hd_brummy@gentoo.org> |
7 | # Joerg Bornkessel <hd_brummy@gentoo.org> |
| 8 | |
8 | |
| … | |
… | |
| 71 | |
71 | |
| 72 | # works in most cases |
72 | # works in most cases |
| 73 | S="${WORKDIR}/${VDRPLUGIN}-${PV}" |
73 | S="${WORKDIR}/${VDRPLUGIN}-${PV}" |
| 74 | |
74 | |
| 75 | # depend on headers for DVB-driver |
75 | # depend on headers for DVB-driver |
| 76 | DEPEND=">=media-tv/gentoo-vdr-scripts-0.3.8 |
76 | COMMON_DEPEND=">=media-tv/gentoo-vdr-scripts-0.4.2" |
| 77 | || ( >=media-tv/gentoo-vdr-scripts-0.4.2 >=media-tv/vdrplugin-rebuild-0.2 ) |
77 | |
| 78 | >=app-admin/eselect-vdr-0.0.2 |
78 | DEPEND="${COMMON_DEPEND} |
| 79 | media-tv/linuxtv-dvb-headers" |
79 | media-tv/linuxtv-dvb-headers" |
| 80 | |
80 | RDEPEND="${COMMON_DEPEND} |
|
|
81 | >=app-admin/eselect-vdr-0.0.2" |
| 81 | |
82 | |
| 82 | # New method of storing plugindb |
83 | # New method of storing plugindb |
| 83 | # Called from src_install |
84 | # Called from src_install |
| 84 | # file maintained by normal portage-methods |
85 | # file maintained by normal portage-methods |
| 85 | create_plugindb_file() { |
86 | create_plugindb_file() { |
| … | |
… | |
| 183 | # To satisfy 1-3 we do this: |
184 | # To satisfy 1-3 we do this: |
| 184 | # Set VDRDIR=/usr/include/vdr |
185 | # Set VDRDIR=/usr/include/vdr |
| 185 | # Set VDRINCDIR=/usr/include |
186 | # Set VDRINCDIR=/usr/include |
| 186 | # Change $(VDRDIR)/include to $(VDRINCDIR) |
187 | # Change $(VDRDIR)/include to $(VDRINCDIR) |
| 187 | |
188 | |
| 188 | ebegin " Setting Pathes" |
189 | ebegin " Setting paths" |
| 189 | sed -i Makefile \ |
190 | sed -i Makefile \ |
| 190 | -e "s:^VDRDIR.*$:VDRDIR = ${VDR_INCLUDE_DIR}:" \ |
191 | -e "s:^VDRDIR.*$:VDRDIR = ${VDR_INCLUDE_DIR}:" \ |
| 191 | -e "/^VDRDIR/a VDRINCDIR = ${VDR_INCLUDE_DIR%/vdr}" \ |
192 | -e "/^VDRDIR/a VDRINCDIR = ${VDR_INCLUDE_DIR%/vdr}" \ |
| 192 | -e '/VDRINCDIR.*=/!s:$(VDRDIR)/include:$(VDRINCDIR):' \ |
193 | -e '/VDRINCDIR.*=/!s:$(VDRDIR)/include:$(VDRINCDIR):' \ |
| 193 | \ |
194 | \ |
| … | |
… | |
| 338 | |
339 | |
| 339 | dosym "${VDRPLUGIN}-${PV}" "${destdir}" |
340 | dosym "${VDRPLUGIN}-${PV}" "${destdir}" |
| 340 | } |
341 | } |
| 341 | |
342 | |
| 342 | vdr-plugin_print_enable_command() { |
343 | vdr-plugin_print_enable_command() { |
|
|
344 | local p_name c=0 l="" |
|
|
345 | for p_name in ${vdr_plugin_list}; do |
|
|
346 | c=$(( c+1 )) |
|
|
347 | l="$l ${p_name#vdr-}" |
|
|
348 | done |
|
|
349 | |
| 343 | elog |
350 | elog |
|
|
351 | case $c in |
|
|
352 | 1) elog "Installed plugin${l}" ;; |
|
|
353 | *) elog "Installed $c plugins:${l}" ;; |
|
|
354 | esac |
| 344 | elog "To activate this vdr-plugin execute the following command:" |
355 | elog "To activate a plugin execute this command:" |
| 345 | elog "\teselect vdr-plugin enable ${PN#vdr-}" |
356 | elog "\teselect vdr-plugin enable <plugin_name> ..." |
| 346 | elog |
357 | elog |
| 347 | } |
358 | } |
| 348 | |
359 | |
| 349 | |
360 | |
| 350 | ## exported functions |
361 | ## exported functions |
| … | |
… | |
| 372 | APIVERSION=$(awk -F'"' '/define APIVERSION/ {print $2}' "${VDR_INCLUDE_DIR}"/config.h) |
383 | APIVERSION=$(awk -F'"' '/define APIVERSION/ {print $2}' "${VDR_INCLUDE_DIR}"/config.h) |
| 373 | [[ -z ${APIVERSION} ]] && APIVERSION="${VDRVERSION}" |
384 | [[ -z ${APIVERSION} ]] && APIVERSION="${VDRVERSION}" |
| 374 | |
385 | |
| 375 | einfo "Compiling against" |
386 | einfo "Compiling against" |
| 376 | einfo "\tvdr-${VDRVERSION} [API version ${APIVERSION}]" |
387 | einfo "\tvdr-${VDRVERSION} [API version ${APIVERSION}]" |
|
|
388 | } |
|
|
389 | |
|
|
390 | vdr-plugin_src_util() { |
|
|
391 | |
|
|
392 | while [ "$1" ]; do |
|
|
393 | |
|
|
394 | case "$1" in |
|
|
395 | all) |
|
|
396 | vdr-plugin_src_util unpack add_local_patch patchmakefile i18n |
|
|
397 | ;; |
|
|
398 | all_but_unpack) |
|
|
399 | vdr-plugin_src_util add_local_patch patchmakefile i18n |
|
|
400 | ;; |
|
|
401 | unpack) |
|
|
402 | base_src_unpack |
|
|
403 | ;; |
|
|
404 | add_local_patch) |
|
|
405 | cd "${S}" || die "Could not change to plugin-source-directory!" |
|
|
406 | vdr_add_local_patch |
|
|
407 | ;; |
|
|
408 | patchmakefile) |
|
|
409 | cd "${S}" || die "Could not change to plugin-source-directory!" |
|
|
410 | vdr_patchmakefile |
|
|
411 | ;; |
|
|
412 | i18n) |
|
|
413 | cd "${S}" || die "Could not change to plugin-source-directory!" |
|
|
414 | vdr_i18n |
|
|
415 | ;; |
|
|
416 | esac |
|
|
417 | |
|
|
418 | shift |
|
|
419 | done |
| 377 | } |
420 | } |
| 378 | |
421 | |
| 379 | vdr-plugin_src_unpack() { |
422 | vdr-plugin_src_unpack() { |
| 380 | if [[ -z ${VDR_INCLUDE_DIR} ]]; then |
423 | if [[ -z ${VDR_INCLUDE_DIR} ]]; then |
| 381 | eerror "Wrong use of vdr-plugin.eclass." |
424 | eerror "Wrong use of vdr-plugin.eclass." |
| 382 | eerror "An ebuild for a vdr-plugin will not work without calling vdr-plugin_pkg_setup." |
425 | eerror "An ebuild for a vdr-plugin will not work without calling vdr-plugin_pkg_setup." |
| 383 | echo |
426 | echo |
| 384 | eerror "Please report this at bugs.gentoo.org." |
427 | eerror "Please report this at bugs.gentoo.org." |
| 385 | die "vdr-plugin_pkg_setup not called!" |
428 | die "vdr-plugin_pkg_setup not called!" |
| 386 | fi |
429 | fi |
| 387 | [ -z "$1" ] && vdr-plugin_src_unpack unpack add_local_patch patchmakefile i18n |
430 | if [ -z "$1" ]; then |
| 388 | |
431 | case "${EAPI:-0}" in |
| 389 | while [ "$1" ]; do |
432 | 2) |
| 390 | |
433 | vdr-plugin_src_util unpack |
| 391 | case "$1" in |
|
|
| 392 | all_but_unpack) |
|
|
| 393 | vdr-plugin_src_unpack add_local_patch patchmakefile i18n |
|
|
| 394 | ;; |
434 | ;; |
| 395 | unpack) |
435 | *) |
| 396 | base_src_unpack |
436 | vdr-plugin_src_util all |
| 397 | ;; |
437 | ;; |
| 398 | add_local_patch) |
|
|
| 399 | cd "${S}" || die "Could not change to plugin-source-directory!" |
|
|
| 400 | vdr_add_local_patch |
|
|
| 401 | ;; |
|
|
| 402 | patchmakefile) |
|
|
| 403 | cd "${S}" || die "Could not change to plugin-source-directory!" |
|
|
| 404 | vdr_patchmakefile |
|
|
| 405 | ;; |
|
|
| 406 | i18n) |
|
|
| 407 | cd "${S}" || die "Could not change to plugin-source-directory!" |
|
|
| 408 | vdr_i18n |
|
|
| 409 | ;; |
|
|
| 410 | esac |
438 | esac |
| 411 | |
439 | |
| 412 | shift |
440 | else |
| 413 | done |
441 | vdr-plugin_src_util $@ |
|
|
442 | fi |
|
|
443 | } |
|
|
444 | |
|
|
445 | vdr-plugin_src_prepare() { |
|
|
446 | vdr-plugin_src_util all_but_unpack |
| 414 | } |
447 | } |
| 415 | |
448 | |
| 416 | vdr-plugin_src_compile() { |
449 | vdr-plugin_src_compile() { |
| 417 | [ -z "$1" ] && vdr-plugin_src_compile prepare compile |
450 | [ -z "$1" ] && vdr-plugin_src_compile prepare compile |
| 418 | |
451 | |
| … | |
… | |
| 431 | eerror "Please report this at bugs.gentoo.org." |
464 | eerror "Please report this at bugs.gentoo.org." |
| 432 | die "vdr-plugin_src_unpack not called!" |
465 | die "vdr-plugin_src_unpack not called!" |
| 433 | fi |
466 | fi |
| 434 | cd "${S}" |
467 | cd "${S}" |
| 435 | |
468 | |
|
|
469 | BUILD_TARGETS=${BUILD_TARGETS:-${VDRPLUGIN_MAKE_TARGET:-all}} |
|
|
470 | |
| 436 | emake ${BUILD_PARAMS} \ |
471 | emake ${BUILD_PARAMS} \ |
| 437 | ${VDRPLUGIN_MAKE_TARGET:-all} \ |
472 | ${BUILD_TARGETS} \ |
| 438 | LOCALEDIR="${TMP_LOCALE_DIR}" \ |
473 | LOCALEDIR="${TMP_LOCALE_DIR}" \ |
| 439 | LIBDIR="${S}" \ |
474 | LIBDIR="${S}" \ |
| 440 | TMPDIR="${T}" \ |
475 | TMPDIR="${T}" \ |
| 441 | || die "emake failed" |
476 | || die "emake failed" |
| 442 | ;; |
477 | ;; |
| … | |
… | |
| 473 | cd "${S}" |
508 | cd "${S}" |
| 474 | insinto "${VDR_PLUGIN_DIR}" |
509 | insinto "${VDR_PLUGIN_DIR}" |
| 475 | doins libvdr-*.so.* |
510 | doins libvdr-*.so.* |
| 476 | |
511 | |
| 477 | # create list of all created plugin libs |
512 | # create list of all created plugin libs |
| 478 | local p_list="" p_name |
513 | vdr_plugin_list="" |
|
|
514 | local p_name |
| 479 | for p in libvdr-*.so.*; do |
515 | for p in libvdr-*.so.*; do |
| 480 | p_name="${p%.so*}" |
516 | p_name="${p%.so*}" |
| 481 | p_name="${p_name#lib}" |
517 | p_name="${p_name#lib}" |
| 482 | p_list="${p_list} ${p_name}" |
518 | vdr_plugin_list="${vdr_plugin_list} ${p_name}" |
| 483 | done |
519 | done |
| 484 | |
520 | |
| 485 | create_header_checksum_file ${p_list} |
521 | create_header_checksum_file ${vdr_plugin_list} |
| 486 | create_plugindb_file ${p_list} |
522 | create_plugindb_file ${vdr_plugin_list} |
| 487 | |
523 | |
| 488 | if vdr_has_gettext && [[ -d ${TMP_LOCALE_DIR} ]]; then |
524 | if vdr_has_gettext && [[ -d ${TMP_LOCALE_DIR} ]]; then |
| 489 | einfo "Installing locales" |
525 | einfo "Installing locales" |
| 490 | cd "${TMP_LOCALE_DIR}" |
526 | cd "${TMP_LOCALE_DIR}" |
| 491 | insinto "${LOCDIR}" |
527 | insinto "${LOCDIR}" |
| … | |
… | |
| 532 | vdr-plugin_pkg_config() { |
568 | vdr-plugin_pkg_config() { |
| 533 | ewarn "emerge --config ${PN} is no longer supported" |
569 | ewarn "emerge --config ${PN} is no longer supported" |
| 534 | vdr-plugin_print_enable_command |
570 | vdr-plugin_print_enable_command |
| 535 | } |
571 | } |
| 536 | |
572 | |
|
|
573 | case "${EAPI:-0}" in |
|
|
574 | 2) |
|
|
575 | EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_compile src_install pkg_postinst pkg_postrm pkg_config |
|
|
576 | ;; |
|
|
577 | *) |
| 537 | EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_postrm pkg_config |
578 | EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_postrm pkg_config |
|
|
579 | ;; |
|
|
580 | esac |