| 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.60 2008/05/15 14:03:15 zzam Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/vdr-plugin.eclass,v 1.68 2009/03/06 09:09:29 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 | \ |
| … | |
… | |
| 295 | vdr_i18n() { |
296 | vdr_i18n() { |
| 296 | if vdr_has_gettext; then |
297 | if vdr_has_gettext; then |
| 297 | einfo "VDR has gettext support" |
298 | einfo "VDR has gettext support" |
| 298 | if plugin_has_gettext; then |
299 | if plugin_has_gettext; then |
| 299 | einfo "Plugin has gettext support, fine" |
300 | einfo "Plugin has gettext support, fine" |
|
|
301 | if [[ ${NO_GETTEXT_HACK} == "1" ]]; then |
|
|
302 | ewarn "Please remove left over NO_GETTEXT_HACK." |
|
|
303 | fi |
| 300 | else |
304 | else |
| 301 | vdr_i18n_convert_to_gettext |
305 | vdr_i18n_convert_to_gettext |
| 302 | if [[ $? != 0 ]]; then |
306 | if [[ $? != 0 ]]; then |
| 303 | eerror "" |
307 | eerror "" |
| 304 | eerror "Plugin will have only english OSD texts" |
308 | eerror "Plugin will have only english OSD texts" |
| … | |
… | |
| 335 | |
339 | |
| 336 | dosym "${VDRPLUGIN}-${PV}" "${destdir}" |
340 | dosym "${VDRPLUGIN}-${PV}" "${destdir}" |
| 337 | } |
341 | } |
| 338 | |
342 | |
| 339 | 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 | |
| 340 | elog |
350 | elog |
|
|
351 | case $c in |
|
|
352 | 1) elog "Installed plugin${l}" ;; |
|
|
353 | *) elog "Installed $c plugins:${l}" ;; |
|
|
354 | esac |
| 341 | elog "To activate this vdr-plugin execute the following command:" |
355 | elog "To activate a plugin execute this command:" |
| 342 | elog "\teselect vdr-plugin enable ${PN#vdr-}" |
356 | elog "\teselect vdr-plugin enable <plugin_name> ..." |
| 343 | elog |
357 | elog |
| 344 | } |
358 | } |
| 345 | |
359 | |
| 346 | |
360 | |
| 347 | ## exported functions |
361 | ## exported functions |
| … | |
… | |
| 363 | DVB_INCLUDE_DIR="/usr/include" |
377 | DVB_INCLUDE_DIR="/usr/include" |
| 364 | |
378 | |
| 365 | TMP_LOCALE_DIR="${WORKDIR}/tmp-locale" |
379 | TMP_LOCALE_DIR="${WORKDIR}/tmp-locale" |
| 366 | LOCDIR="/usr/share/vdr/locale" |
380 | LOCDIR="/usr/share/vdr/locale" |
| 367 | |
381 | |
| 368 | TMP_LIBDIR="${WORKDIR}/tmp-libdir" |
|
|
| 369 | |
|
|
| 370 | VDRVERSION=$(awk -F'"' '/define VDRVERSION/ {print $2}' "${VDR_INCLUDE_DIR}"/config.h) |
382 | VDRVERSION=$(awk -F'"' '/define VDRVERSION/ {print $2}' "${VDR_INCLUDE_DIR}"/config.h) |
| 371 | 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) |
| 372 | [[ -z ${APIVERSION} ]] && APIVERSION="${VDRVERSION}" |
384 | [[ -z ${APIVERSION} ]] && APIVERSION="${VDRVERSION}" |
| 373 | |
385 | |
| 374 | einfo "Compiling against" |
386 | einfo "Compiling against" |
| 375 | 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 | prepare|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 |
| 376 | } |
420 | } |
| 377 | |
421 | |
| 378 | vdr-plugin_src_unpack() { |
422 | vdr-plugin_src_unpack() { |
| 379 | if [[ -z ${VDR_INCLUDE_DIR} ]]; then |
423 | if [[ -z ${VDR_INCLUDE_DIR} ]]; then |
| 380 | eerror "Wrong use of vdr-plugin.eclass." |
424 | eerror "Wrong use of vdr-plugin.eclass." |
| 381 | 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." |
| 382 | echo |
426 | echo |
| 383 | eerror "Please report this at bugs.gentoo.org." |
427 | eerror "Please report this at bugs.gentoo.org." |
| 384 | die "vdr-plugin_pkg_setup not called!" |
428 | die "vdr-plugin_pkg_setup not called!" |
| 385 | fi |
429 | fi |
| 386 | [ -z "$1" ] && vdr-plugin_src_unpack unpack add_local_patch patchmakefile i18n |
430 | if [ -z "$1" ]; then |
|
|
431 | case "${EAPI:-0}" in |
|
|
432 | 2) |
|
|
433 | vdr-plugin_src_util unpack |
|
|
434 | ;; |
|
|
435 | *) |
|
|
436 | vdr-plugin_src_util all |
|
|
437 | ;; |
|
|
438 | esac |
|
|
439 | |
|
|
440 | else |
|
|
441 | vdr-plugin_src_util $@ |
|
|
442 | fi |
|
|
443 | } |
|
|
444 | |
|
|
445 | vdr-plugin_src_prepare() { |
|
|
446 | base_src_prepare |
|
|
447 | vdr-plugin_src_util prepare |
|
|
448 | } |
|
|
449 | |
|
|
450 | vdr-plugin_src_compile() { |
|
|
451 | [ -z "$1" ] && vdr-plugin_src_compile copy_source compile |
| 387 | |
452 | |
| 388 | while [ "$1" ]; do |
453 | while [ "$1" ]; do |
| 389 | |
454 | |
| 390 | case "$1" in |
455 | case "$1" in |
| 391 | all_but_unpack) |
456 | copy_source) |
| 392 | vdr-plugin_src_unpack add_local_patch patchmakefile i18n |
|
|
| 393 | ;; |
|
|
| 394 | unpack) |
|
|
| 395 | base_src_unpack |
|
|
| 396 | ;; |
|
|
| 397 | add_local_patch) |
|
|
| 398 | cd "${S}" || die "Could not change to plugin-source-directory!" |
|
|
| 399 | vdr_add_local_patch |
|
|
| 400 | ;; |
|
|
| 401 | patchmakefile) |
|
|
| 402 | cd "${S}" || die "Could not change to plugin-source-directory!" |
|
|
| 403 | vdr_patchmakefile |
|
|
| 404 | ;; |
|
|
| 405 | i18n) |
|
|
| 406 | cd "${S}" || die "Could not change to plugin-source-directory!" |
|
|
| 407 | vdr_i18n |
|
|
| 408 | ;; |
|
|
| 409 | esac |
|
|
| 410 | |
|
|
| 411 | shift |
|
|
| 412 | done |
|
|
| 413 | } |
|
|
| 414 | |
|
|
| 415 | vdr-plugin_src_compile() { |
|
|
| 416 | [ -z "$1" ] && vdr-plugin_src_compile prepare compile |
|
|
| 417 | |
|
|
| 418 | while [ "$1" ]; do |
|
|
| 419 | |
|
|
| 420 | case "$1" in |
|
|
| 421 | prepare) |
|
|
| 422 | [[ -n "${VDRSOURCE_DIR}" ]] && vdr-plugin_copy_source_tree |
457 | [[ -n "${VDRSOURCE_DIR}" ]] && vdr-plugin_copy_source_tree |
| 423 | ;; |
458 | ;; |
| 424 | compile) |
459 | compile) |
| 425 | if [[ ! -f ${WORKDIR}/.vdr-plugin_makefile_patched ]]; then |
460 | if [[ ! -f ${WORKDIR}/.vdr-plugin_makefile_patched ]]; then |
| 426 | eerror "Wrong use of vdr-plugin.eclass." |
461 | eerror "Wrong use of vdr-plugin.eclass." |
| … | |
… | |
| 430 | eerror "Please report this at bugs.gentoo.org." |
465 | eerror "Please report this at bugs.gentoo.org." |
| 431 | die "vdr-plugin_src_unpack not called!" |
466 | die "vdr-plugin_src_unpack not called!" |
| 432 | fi |
467 | fi |
| 433 | cd "${S}" |
468 | cd "${S}" |
| 434 | |
469 | |
| 435 | mkdir -p "${TMP_LIBDIR}" |
470 | BUILD_TARGETS=${BUILD_TARGETS:-${VDRPLUGIN_MAKE_TARGET:-all}} |
|
|
471 | |
| 436 | emake ${BUILD_PARAMS} \ |
472 | emake ${BUILD_PARAMS} \ |
| 437 | ${VDRPLUGIN_MAKE_TARGET:-all} \ |
473 | ${BUILD_TARGETS} \ |
| 438 | LOCALEDIR="${TMP_LOCALE_DIR}" \ |
474 | LOCALEDIR="${TMP_LOCALE_DIR}" \ |
| 439 | LIBDIR="${TMP_LIBDIR}" \ |
475 | LIBDIR="${S}" \ |
| 440 | TMPDIR="${T}" \ |
476 | TMPDIR="${T}" \ |
| 441 | || die "emake failed" |
477 | || die "emake failed" |
| 442 | ;; |
478 | ;; |
| 443 | esac |
479 | esac |
| 444 | |
480 | |
| … | |
… | |
| 467 | doins "${mname}.patched" |
503 | doins "${mname}.patched" |
| 468 | |
504 | |
| 469 | fi |
505 | fi |
| 470 | |
506 | |
| 471 | |
507 | |
| 472 | local p_list="" p_name |
|
|
| 473 | |
508 | |
| 474 | cd "${TMP_LIBDIR}" |
509 | cd "${S}" |
|
|
510 | insinto "${VDR_PLUGIN_DIR}" |
|
|
511 | doins libvdr-*.so.* |
|
|
512 | |
|
|
513 | # create list of all created plugin libs |
|
|
514 | vdr_plugin_list="" |
|
|
515 | local p_name |
| 475 | for p in libvdr-*.so.*; do |
516 | for p in libvdr-*.so.*; do |
| 476 | p_name="${p%.so*}" |
517 | p_name="${p%.so*}" |
| 477 | p_name="${p_name#lib}" |
518 | p_name="${p_name#lib}" |
| 478 | p_list="${p_list} ${p_name}" |
519 | vdr_plugin_list="${vdr_plugin_list} ${p_name}" |
| 479 | |
|
|
| 480 | insinto "${VDR_PLUGIN_DIR}" |
|
|
| 481 | doins "$p" |
|
|
| 482 | done |
520 | done |
| 483 | |
521 | |
| 484 | create_header_checksum_file ${p_list} |
522 | create_header_checksum_file ${vdr_plugin_list} |
| 485 | create_plugindb_file ${p_list} |
523 | create_plugindb_file ${vdr_plugin_list} |
| 486 | |
524 | |
| 487 | if vdr_has_gettext && [[ -d ${TMP_LOCALE_DIR} ]]; then |
525 | if vdr_has_gettext && [[ -d ${TMP_LOCALE_DIR} ]]; then |
| 488 | einfo "Installing locales" |
526 | einfo "Installing locales" |
| 489 | cd "${TMP_LOCALE_DIR}" |
527 | cd "${TMP_LOCALE_DIR}" |
| 490 | insinto "${LOCDIR}" |
528 | insinto "${LOCDIR}" |
| … | |
… | |
| 531 | vdr-plugin_pkg_config() { |
569 | vdr-plugin_pkg_config() { |
| 532 | ewarn "emerge --config ${PN} is no longer supported" |
570 | ewarn "emerge --config ${PN} is no longer supported" |
| 533 | vdr-plugin_print_enable_command |
571 | vdr-plugin_print_enable_command |
| 534 | } |
572 | } |
| 535 | |
573 | |
|
|
574 | case "${EAPI:-0}" in |
|
|
575 | 2) |
|
|
576 | EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_compile src_install pkg_postinst pkg_postrm pkg_config |
|
|
577 | ;; |
|
|
578 | *) |
| 536 | EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_postrm pkg_config |
579 | EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_postrm pkg_config |
|
|
580 | ;; |
|
|
581 | esac |